在我的 mapReduce 程序中,我必须使用 Partitionner :
public class TweetPartitionner extends HashPartitioner<Text, IntWritable>{
public int getPartition(Text a_key, IntWritable a_value, int a_nbPartitions) {
if(a_key.toString().startsWith("#"))
return 0;
else
return 1;
}
}
我已经设置了减少任务的数量:job.setNumReduceTasks(2);
但我收到以下错误:java.io.IOException: Illegal partition for #rescinfo (1)
参数a_nbPartitions
返回1
。
我在另一篇文章中读过: Hadoop:reducer 的数量不等于我在程序中设置的
在 Eclipse 中运行它似乎使用本地作业运行器。它只支持 0 或 1 个减速器。如果您尝试将其设置为使用多个减速器,它会忽略它并只使用一个。
我在 Cygwin 上安装的 Hadoop 0.20.2 上进行开发,当然我使用 Eclipse。我能怎么做 ?