3

如何为 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

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

想法??

4

0 回答 0