我试图将数据从hbase写入hdfs,并且在编译时遇到此错误。 reducer 代码或其他问题吗?
HbaseFile.java:36:org.apache.hadoop.mapreduce.Job中的setReducerClass(java.lang.Class)无法应用于(java.lang.Class)
job.setReducerClass(CountWordReducer.class);
^
HbaseFile.java:38:org.apache.hadoop.mapred.FileOutputFormat中的setOutputPath(org.apache.hadoop.mapred.JobConf,org.apache.hadoop.fs.Path)无法应用于(org.apache.hadoop.mapreduce .org.org.apache.hadoop.fs.Path)
FileOutputFormat.setOutputPath(job,new Path(args [0]));
最佳答案
从正在使用的程序包中,您将混合使用旧的和新的api。要解决此问题,您必须选择一个并持续使用它。
注意,您的工作是新的api org.apache.hadoop.mapreduce.Job
。但是您可以尝试使用旧的api设置输出路径,因为它需要旧的JobConf org.apache.hadoop.mapred.JobConf
。
如果您在代码中同时看到“org.apache.hadoop.mapreduce”和“org.apache.hadoop.mapred”,则可能是混合使用了api,应该改变周围的情况以仅选择其中之一。
关于hadoop - hadoop mapreduce程序中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16648198/