MapReduce多線程下的錯誤

最近在寫一個MR調度程序,在以服務進程中同時開啓了兩個MapReduce線程。這兩個MR共享同一份輸入源,此時會形成Cast異常:java

java.lang.ClassCastException: org.apache.hadoop.mapreduce.lib.input.FileSplit cannot be cast to org.apache.hadoop.mapred.InputSplit
     at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java: 412 )
     at org.apache.hadoop.mapred.MapTask.run(MapTask.java: 372 )
     at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java: 212 )
 
查資料發現MR不支持多線程。因此將此2個MR合併爲同一個調度,待第一個調度waitForCompletion(true)後,再調度第二個MR。串行調度。即可解決此問題。
相關文章
相關標籤/搜索