減速器在我的MapReduce程序的數量,我必須使用一個Partitionner:Hadoop和Eclipse中
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: Number of reducer is not equal to what I have set in program是
在Eclipse中運行它似乎使用本地工作亞軍。它只有 支持0或1個減速器。如果您嘗試將其設置爲使用多個 減速器,它將忽略它並只是使用一個。
我開發了一個安裝在Cygwin上的Hadoop 0.20.2,我當然使用Eclipse。我能怎麼做 ?
完美的,它工作得很好!感謝您的鏈接至極是非常精確的,樂於助人! – Apaachee