2013-05-20 66 views
0

我正在嘗試將hbase中的數據寫入hdfs並在編譯時遇到此錯誤。減速器代碼還是其他問題?hadoop mapreduce程序中的錯誤

HbaseFile.java:36:setReducerClass(java.lang.Class中)在org.apache.hadoop.mapreduce.Job不能被應用到(java.lang.Class中) job.setReducerClass(CountWordReducer.class); ^ HbaseFile.java:38:setOutputPath(org.apache.hadoop.mapred.JobConf,org.apache.hadoop.fs.Path)在org.apache.hadoop.mapred.FileOutputFormat不能被應用到(org.apache。 hadoop.mapreduce.Job,org.apache.hadoop.fs.Path) FileOutputFormat.setOutputPath(job,new Path(args [0]));

回答

1

從你使用的軟件包中,你正在混合舊的和新的api。要解決這個問題,你必須選擇一個並一致地使用它。

注意你的工作是新的api org.apache.hadoop.mapreduce.Job。但是你試圖使用舊的API來設置輸出路徑,我可以告訴它,因爲它需要舊的JobConf org.apache.hadoop.mapred.JobConf

如果您在代碼中同時看到「org.apache.hadoop.mapreduce」和「org.apache.hadoop.mapred」,則可能是混合了api,並且應該更改其中的某個選項。

+0

謝謝我發現相同的蹤跡和錯誤.. – user2401464

相關問題