簡體   English   中英

我在EMR群集主服務器上運行的python作業失敗,該如何解決?

[英]My python job I run on the master of EMR cluster fails, how do I troubleshoot?

我向主服務器SSH並在控制台上運行我的hadoop作業以進行開發。 我的工作以一種神秘的方式失敗了,有許多對我來說毫無意義的java堆棧跟蹤,請參見下文:

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)

在日志中查看python代碼中的錯誤。 對於EMR /紗線,您可以從WEB UI或群集主外殼上找到日志,如下所示(您的應用程序ID會有所不同,在作業開始時會打印出來)。 有很多輸出,如圖所示,將其重定向到文件中,並搜索python堆棧跟蹤以查看您的應用出了什么問題。 所有這些堆棧跟蹤通常都表明至少有一個reduce進程失敗了,但是該進程的stderr沒有顯示在CLI / shell輸出中。

$ yarn logs -applicationId application_1503951120983_0031 > /tmp/log 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM