0

当我在 hadoop 1.2.1 中使用时,我想从父类 hashpatitioner 构建一个新类 MyPatitioner,它(mypatitioner)是可以的。但是,当我尝试在 main 中使用它时,eclipse 发现了一些异常。为什么?

            job.setPartitionerClass(MyPartitioner.class);

Tips:Job类型中的setPartitionerClass(Class)方法不适用于参数(Class)。

    public class MyPartitioner extends  HashPartitioner<Text,IntWritable>{……}
4

1 回答 1

0

你的问题有点难以解释,但我怀疑你没有一致地导入包。在 hadoop API 中有两个 MapReduce API 包org.apache.hadoop.mapreduceorg.apache.hadoop.mapred.

这两者不混合,例如,如果您已将作业类org.apache.hadoop.mapreduce.Job和 HashPartitioner 类导入,那么org.apache.hadoop.mapred.lib.HashPartitioner您将遇到一个听起来像您正在描述的问题。

确保 MyPartitioner 类中的 import 语句在您org.apache.hadoop.mapreduce用于 Job 设置时使用,反之亦然。不要将这两个包混合用于同一个工作。

于 2013-09-28T02:39:57.057 回答