2012-09-03 52 views
3

我使用python與hadoop流。儘管仔細的單元測試,錯誤難免蠕變當他們這樣做,此錯誤消息是所有的Hadoop得出:有沒有辦法從hadoop流中的python腳本中獲取信息錯誤?

java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 1 
    at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:362) 
    at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:576) 
... 

的消息對於調試非常無益的。

有沒有什麼辦法可以獲得信息性的錯誤從hadoop流python腳本?

+0

您是否找到解決方案? – pratiklodha

回答

2

如果您有權訪問正在運行的集羣的jobtracker,則可以通過查找作業並查找失敗的任務來獲取腳本的stderr/stdout。

+0

我應該在哪裏看?我在EC2上運行自己的集羣,但是它不報告stderr/stdout,或者我查找的地方不對。 – Abe

+0

你是否知道你正在運行求職者的節點的IP和/或主機名?通常情況下,您可以通過端口50030上的瀏覽器進行訪問,但防火牆有時會阻止該端口。另一種選擇是,如果您知道給定任務失敗的節點,則可以訪問該節點並查找作業日誌。確切的目錄將取決於您使用的是哪個hadoop軟件包。 –

+0

我可以在端口50030處進入jobtracker。我可以看到管理頁面,作業頁面,甚至任務頁面,但不會加載日誌。 – Abe

相關問題