分散key后Shuffle时间和整体执行时间都变长了
老师您好我生成了一些数据,1000个1,100000000个5, 8000个8,大概200多兆
直接执行word count,reduce执行时间的截图

添加了分散key的逻辑,后整体执行时间反而变长了,是因为数据量太小的缘故么,为什么elapsed time shuffle的执行时间增加了好多
Random random = new Random();
@Override
protected void map(LongWritable key1, Text value1, Mapper<LongWritable, Text, Text, LongWritable>.Context context)
throws IOException, InterruptedException {
String[] words = value1.toString().split(" ");
for(String word : words) {
if("5".equals(word)) {
word = "5_" + random.nextInt(3);
}
Text key2 = new Text(word);
LongWritable value2 = new LongWritable(1L);
// 把 <key2, value2> 值写出去
context.write(key2, value2);
}
}
}
5
收起
正在回答
1回答
主要还是因为数据量太小了,你使用课程中提供的数据文件测试一下看看
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星