PHP サーバーから HBase データベースに対して単純なクエリを実行するために jar ファイルを実行しようとしているので、結果を Web ページに出力できます。
PHP サーバーは、hadoop ユーザーと同じユーザー名と同じグループで構成されています。
PHP exec コマンドは次のとおりです。
exec("bash /usr/local/hadoop/bin/hadoop jar myjar.jar my.package.MyClass 2> php_error.log", $result);
(php_error.log で) コマンドを実行しようとすると、この例外が発生します。
Exception in thread "main" java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.io.File.createTempFile(File.java:1879)
at org.apache.hadoop.util.RunJar.main(RunJar.java:115)
アクセス許可に関連していることは知っていますが、HDFS と Hadoop インストール フォルダーで 777 を使用しても機能しません。
何か案は?ありがとうございました。
また、この一時ファイルをどこに作成したいですか? Hadoop ディレクトリ? hdfs? どこ?
編集:これをローカルで実行すると、完全に機能します! 許可エラーはありません! Hadoop jar myjar.jar my.package.MyClass