0

我正在尝试将数据从 hbase 写入 hdfs 并在编译时遇到此错误。减速器代码有问题还是其他问题?

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.Job,org.apache.hadoop.fs.Path) FileOutputFormat.setOutputPath(job, new Path(args[0]));

4

1 回答 1

1

从您使用的软件包中,您正在混合旧的和新的 api。要解决此问题,您必须选择一个并始终如一地使用它。

请注意,您的 Job 是新的 api org.apache.hadoop.mapreduce.Job。但是您正在尝试使用旧的 api 来设置输出路径,我可以告诉您,因为它需要旧的 JobConf org.apache.hadoop.mapred.JobConf

如果您同时在代码中看到“org.apache.hadoop.mapreduce”和“org.apache.hadoop.mapred”,那么您可能正在混合 api,应该改变一些东西来只选择一个。

于 2013-05-20T15:55:08.413 回答