Hadoop Streaming 常見錯誤(不斷更新ing)

1、streaming默認的情況下,mapper和reducer的返回值不是0,被認爲異常任務,將被再次執行,默認嘗試4次都不是0,整個job都將失敗

java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed wi  
th code 1  
    at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.j  
ava:311)  
    at org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java  
:545)  
    at org.apache.hadoop.streaming.PipeReducer.reduce(PipeReducer.java:130)  
    at org.apache.hadoop.mapred.ReduceTask.runOldReducer(ReduceTask.java:519  
)  
    at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:420)  
    at org.apache.hadoop.mapred.Child$4.run(Child.java:255)  
    at java.security.AccessController.doPrivileged(Native Method)  
    at javax.security.auth.Subject.doAs(Subject.java:396)  
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInforma  
tion.java:1093)  
    at org.apache.hadoop.mapred.Child.main(Child.java:249)

解決方法:

hadoop jar hadoop-streaming*.jar  
-D stream.non.zero.exit.is.failure=false 

2、在執行streaming任務時,出現:Environment variable CLASSPATH not set!
解決方法:

在執行streaming時,加上選項:

-cmdenv CLASSPATH=$CLASSPATH 

3、在調用HDFS的C接口時,出現:Call to JNI_CreateJavaVM failed with error: -1

原因:貌似是因爲在編譯的時候加上了libjvm,然後動態鏈接庫那也加了。解決方法,編譯的時候去掉libjvmm的鏈接就可以了。

發佈了74 篇原創文章 · 獲贊 193 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章