分散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 星