Hive HQL スクリプトの umask を設定するにはどうすればよいですか? スクリプト内のステートメントを介して、またはスクリプトを実行する前に設定されたクライアント側の構成を介して? サーバー側の構成を変更せずに、クライアント側で変更を加えたい。
これはシェルプロンプトから機能することがわかりましたが、ハイブスクリプト内から実行したいと思います。
$ 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
hive.files.umask.value を .hiverc に設定しても、目的の効果が得られません (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 ...」ステートメントを散りばめなければならないようです。
アイデア??