HadoopクラスターでApachePigを起動して実行しようとしていますが、アクセス許可の問題が発生しています。Pig自体が起動し、クラスターに正常に接続しています。Pigシェル内からls
、HDFSディレクトリ内およびその周辺を移動できます。ただし、実際にデータをロードしてPigコマンドを実行しようとすると、アクセス許可に関連するエラーが発生します。
grunt> A = load 'all_annotated.txt' USING PigStorage() AS (id:long, text:chararray, lang:chararray);
grunt> DUMP A;
2011-08-24 18:11:40,961 [main] ERROR org.apache.pig.tools.grunt.Grunt - You don't have permission to perform the operation. Error from the server: org.apache.hadoop.security.AccessControlException: Permission denied: user=steven, access=WRITE, inode="":hadoop:supergroup:r-xr-xr-x
2011-08-24 18:11:40,977 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1066: Unable to open iterator for alias A
Details at logfile: /Users/steven/Desktop/Hacking/hadoop/pig/pig-0.9.0/pig_1314230681326.log
grunt>
この場合、all_annotated.txt
は私が作成したHDFSホームディレクトリ内のファイルであり、最も確実に次の権限を持っています。どのファイルを作成しようとしても、同じ問題が発生しますload
。ただし、エラー自体はPigがどこかに書き込もうとしていることを示しているため、これが問題になるとは思いません。order
調べてみると、特定のPig Latinステートメント(など)がhadoop.tmp.dir
、hdfsd-site.xmlのプロパティによって場所が制御されているHDFSファイルシステム上の一時ディレクトリへの書き込みアクセスが必要であることを示唆するメーリングリストの投稿がいくつか見つかりました。そのカテゴリに分類されるとは思い ませんload
が、念のためhadoop.tmp.dir
、HDFSホームディレクトリ内のディレクトリを指すように変更しましたが、問題は解決しませんでした。
それで、そこにいる誰かが何が起こっているのかについて何か考えを持っていますか?