2017-08-31 12 views
0

私はマスターにsshし、開発のためにコンソールで私のhadoopジョブを実行します。私の仕事は私には意味をなさない多くのJavaスタックトレースで、神秘的な方法で失敗し、以下を参照してください:あなたのPythonコード内のエラーのログでEMRクラスターのマスターで実行している私のpythonジョブが失敗しました。どうすればトラブルシューティングできますか?

java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 143 
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:322) 
at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:535) 
at org.apache.hadoop.streaming.PipeMapper.map(PipeMapper.java:120) 
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:54) 
at org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:34) 
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:455) 
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:344) 
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) 
at java.security.AccessController.doPrivileged(Native Method) 
at javax.security.auth.Subject.doAs(Subject.java:422) 
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 

答えて

0

ルック。 EMR /糸の場合、以下のようにWEB UIまたはクラスタマスターシェルからログを見つけることができます(ジョブの開始時にアプリケーションIDが印刷されます)。たくさんの出力があり、ファイルにリダイレクトして表示し、Pythonスタックトレースを検索して、アプリに何が間違っているかを確認します。これらのスタックトレースは、通常、少なくとも1つのreduceプロセスが失敗したことを示しますが、プロセスのstderrはCLI /シェルの出力には表示されません。

$ yarn logs -applicationId application_1503951120983_0031 > /tmp/log 
+0

今日私はEMRタスクの問題を解決するためにこれを使用しなければなりませんでした。私は、ログがダンプされ、 "j-XXXXXXXXXXXXXXX/containers/application_151935143321369_0010/container_151239351321369_0010_01_001374/stderr.gz"のようなファイルにあったはずのS3のログを見つけようとしましたが、このファイルは失敗したタスクのために存在しません。だから私は状況を再現しなければならなかった、失敗の後にクラスタを実行したままにして、指示に従ってください。 – gae123

関連する問題