4

私はAWS初心者です。クラスターを作成し、マスター ノードに ssh 接続しました。次を使用して、s3://my-bucket-name/ から pig のローカル file://home/hadoop フォルダーにファイルをコピーしようとしている場合:

cp s3://my-bucket-name/path/to/file file://home/hadoop

エラーが発生します:

2013-06-08 18:59:00,267 [メイン] エラー org.apache.pig.tools.grunt.Grunt - エラー 29 99: 予期しない内部エラー。AWS アクセス キー ID とシークレット アクセス キーは、s3 URL のユーザー名またはパスワードとして (それぞれ) 指定するか、 fs.s3.awsAccessKeyId または fs.s3.awsSecretAccessKey プロパティを (それぞれ) 設定して指定する必要があります。

s3 バケットに ls することさえできません。AWS_ACCESS_KEY と AWS_SECRET_KEY を設定しても成功しませんでした。また、豚が適切なフィールドを設定するための構成ファイルを見つけることができませんでした。

何か助けてください。

編集:完全な s3n:// uri を使用して豚にファイルをロードしようとしました

grunt> raw_logs = LOAD 's3://XXXXX/input/access_log_1' USING TextLoader a
s (line:chararray);
grunt> illustrate raw_logs;

次のエラーが表示されます。

2013-06-08 19:28:33,342 [main] INFO org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Hadoop ファイル システムへの接続: file:/// 2013-06-08 19:28: 33,404 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MRCompiler - ファイル連結しきい値: 100 楽観的? fal se 2013-06-08 19:28:33,404 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer - 最適化前の MR プラン サイズ: 1 2013-06-08 19:28:33,405 [main] INFO org.apache.pig.backend.hadoop.executionengine.mapReduceLayer.MultiQueryOptimizer - 最適化後の MR プランのサイズ: 1 2013-06-08 19:28:33,405 [main] INFO org.apache.pig.tools. pigstats.ScriptState - Pig スクリプト設定がジョブに追加されます 2013-06-08 19:28:33,429 [main] INFO org.apache.pig.backend.hadoop. executionengine.mapReduceLayer.JobControlCompiler - mapred.job.reduce.markreset.buffer.percent が設定されていません。デフォルトに設定されています 0.3 2013-06-08 19:28:33,430 [main] ERROR org.apache.pig.pen.ExampleGenerator - データの読み取りエラー。ジョブ構成の作成中に内部エラーが発生しました。java.lang.RuntimeException: ジョブ構成の作成中に内部エラーが発生しました。org.apache.pig.pen.ExampleGenerator.getExamples(ExampleGenerator.java :160) で org.apache.pig.PigServer.getExamples(PigServer.java:1244) で org.apache.pig.tools.grunt.GruntParser.processIllustrate (GruntParser.java:722) org.apache.pig.tools.pigscript.parser.PigScriptParser.Illustrate(PigS criptParser.java:591) org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScript パーサー) .java:306) org.apache.pig.tools.grunt. org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.j ava:165) の GruntParser.parseStopOnError(GruntParser.j ava:189) org.apache.pig.tools.grunt.Grunt.run(Grunt. java:69) org.apache.pig.Main.run(Main.java:500) で org.apache.pig.Main.main(Main.java:114) で sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブ メソッド) で組織で.apache.hadoop.util.RunJar.main(RunJar.java:187) 2013-06-08 19:28:33,432 [main] エラー org.apache.pig.tools.grunt.Grunt - エラー 29 97: IOException が発生しました。例外 :ジョブ構成の作成中に内部エラーが発生しました。ログファイルの詳細: /home/hadoop/pig_1370719069857.log

4

3 に答える 3

1

これとまったく同じエラーが発生し、最終的に解決策にたどり着きました。ただし、一度に 2 つのことを変更したので、両方が必要かどうかはわかりません (確かに 1 つが必要です)。

まず、S3 データと EMR システムが同じリージョンにあることを確認しました。この問題が発生したとき、データは米国東部にあり、EMR は米国西部にありました。私は米国東部 (バージニア)、別名 us-east-1、別名 US Standard、別名 DEFAULT、別名 N. バージニアで標準化しました。これは必要ではなかったかもしれませんが、害はありませんでした。

次に、エラーが発生したときに、いずれかのビデオの手順に従って pig を起動し、「-x local」オプションを指定しました。「-x local」は、s3 へのアクセスを防ぐことが保証されているようです (以下を参照)。

解決策は、パラメーターなしで豚を開始することです。

これが役立つことを願っています。

ギル


hadoop@domU-12-31-39-09-24-66:~$ pig -x local
2013-07-03 00:27:15,321 [main] INFO  org.apache.pig.Main - Apache Pig version 0.11.1-amzn (rexported) compiled Jun 24 2013, 18:37:44
2013-07-03 00:27:15,321 [main] INFO  org.apache.pig.Main - Logging error messages to: /home/hadoop/pig_1372811235317.log
2013-07-03 00:27:15,379 [main] INFO  org.apache.pig.impl.util.Utils - Default bootup file /home/hadoop/.pigbootup not found
2013-07-03 00:27:15,793 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - 
Connecting to hadoop file system at: file:///

grunt>  ls s3://xxxxxx.xx.rawdata
2013-07-03 00:27:23,463 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 2999: Unexpected internal error. AWS Access Key ID and
Secret Access Key must be specified as the username or password (respectively) of a s3 URL, or by setting the fs.s3.awsAccessKeyId
or fs.s3.awsSecretAccessKey properties (respectively).
Details at logfile: /home/hadoop/pig_1372811235317.log

grunt> quit

hadoop@domU-12-31-39-09-24-66:~$ pig
2013-07-03 00:28:04,769 [main] INFO  org.apache.pig.Main - Apache Pig version 0.11.1-amzn (rexported) compiled Jun 24 2013, 18:37:44
2013-07-03 00:28:04,771 [main] INFO  org.apache.pig.Main - Logging error messages to: /home/hadoop/pig_1372811284764.log
2013-07-03 00:28:04,873 [main] INFO  org.apache.pig.impl.util.Utils - Default bootup file /home/hadoop/.pigbootup not found
2013-07-03 00:28:05,639 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - 
Connecting to hadoop file system at: hdfs://10.210.43.148:9000
2013-07-03 00:28:08,765 [main] INFO  org.apache.pig.backend.hadoop.executionengine.HExecutionEngine - Connecting to map-reduce job tracker at: 10.210.43.148:9001

grunt>  ls s3://xxxxxx.xx.rawdata
s3://xxxxxx.xx.rawdata/rawdata<r 1>  19813
s3://xxxxxx.xx.rawdata/rawdata.csv<r 1> 19813
grunt>
于 2013-07-03T18:40:14.147 に答える