Java 在hadoop 1.2.1中使用时,我希望从父类HashPationer构建一个新的MyPationer
当我在hadoop 1.2.1中使用时,我想从父类HashPationer构建一个新的类MyPationer,它(MyPationer)是可以的。但是,当我尝试在main中使用它时,eclipse发现了一些异常。为什么Java 在hadoop 1.2.1中使用时,我希望从父类HashPationer构建一个新的MyPationer,java,hadoop,Java,Hadoop,当我在hadoop 1.2.1中使用时,我想从父类HashPationer构建一个新的类MyPationer,它(MyPationer)是可以的。但是,当我尝试在main中使用它时,eclipse发现了一些异常。为什么 job.setPartitionerClass(MyPartitioner.class); 提示:类型作业中的方法setPartitionerClass(类)不适用于参数(类) 公共类MyPartitioner扩展了HashPartitioner{……}
job.setPartitionerClass(MyPartitioner.class);
提示:类型作业中的方法setPartitionerClass(类)不适用于参数(类)
公共类MyPartitioner扩展了HashPartitioner{……}
您的问题有点难以解释,但我怀疑您没有始终如一地导入包。hadoop API中有两个MapReduce API包org.apache.hadoop.MapReduce
和org.apache.hadoop.mapred
这两个类不会混合使用,例如,如果您将job类导入为org.apache.hadoop.mapreduce.job
,将HashPartitioner类导入为org.apache.hadoop.mapred.lib.HashPartitioner
,您将看到一个听起来像您正在描述的问题
确保MyPartitioner类中的导入语句使用
org.apache.hadoop.mapreduce
,如果这是用于作业设置的,则反之亦然。不要将这两个软件包混用在同一个工作中。您能给我看一下您的代码和完整的例外情况吗?
public class MyPartitioner extends HashPartitioner<Text,IntWritable>{……}