如何为Hive HQL脚本设置umask?在运行脚本之前,是通过脚本中的语句还是通过客户端配置集?我想在客户端进行更改而不更改服务器端配置。
我发现这可以从shell提示符开始,但我想在hive脚本中执行此操作。
$ hdfs dfs -Dfs.permissions.umask-mode=000 -mkdir /user/jeff/foo
$ hdfs dfs -Dfs.permissions.umask-mode=000 -put bar /user/jeff/foo
这些尝试不起作用:
hive> dfs -mkdir -Dfs.permissions.umask-mode=000 /user/jeff/foo;
-mkdir: Illegal option -Dfs.permissions.umask-mode=000
hive> dfs -Dfs.permissions.umask-mode=000 -mkdir /user/jeff/foo;
-Dfs.permissions.umask-mode=000: Unknown command
在.hiverc中设置hive.files.umask.value并没有达到预期的效果(g + w和o + w位没有被设置,这就是我试图用这个umask做的事情。):
hive> set hive.files.umask.value;
hive.files.umask.value=000
hive> dfs -mkdir /user/jeff/foo;
hive> dfs -ls -d /user/jeff/foo;
drwxr-xr-x - jeff hadoop 0 2016-02-23 15:19 /user/jeff/foo
看起来我需要撒上一堆" dfs -chmod 777 ......"我的HQL脚本中的语句。
想法?