Hive 为配置单元客户端设置umask

Hive 为配置单元客户端设置umask,hive,hdfs,umask,Hive,Hdfs,Umask,如何为配置单元HQL脚本设置umask?在运行脚本之前,是否通过脚本中的语句或客户端配置集?我希望在不更改服务器端配置的情况下在客户端进行更改 我发现这可以在shell提示符下工作,但我希望在配置单元脚本中完成 $ hdfs dfs -Dfs.permissions.umask-mode=000 -mkdir /user/jeff/foo $ hdfs dfs -Dfs.permissions.umask-mode=000 -put bar /user/jeff/foo 这些尝试不起作用: h

如何为配置单元HQL脚本设置umask?在运行脚本之前,是否通过脚本中的语句或客户端配置集?我希望在不更改服务器端配置的情况下在客户端进行更改

我发现这可以在shell提示符下工作,但我希望在配置单元脚本中完成

$ 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所做的):

看起来我需要在我的HQL脚本中加入一堆“dfs-chmod 777…”语句


想法???

您尝试过在hdfs上设置它吗?hdfs将为HIVE解决这个问题。嗨,Vikas,我需要比全局服务器端更改提供更好的粒度。某些HQL脚本需要与其他HQL脚本不同的umask。对于一个脚本,我需要允许每个人读写数据(umask=000),但其他脚本使用更敏感的数据(umask=077)。
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