Shuffle描述数据从map task输出到reduce输入的这段过程
1、map端shuffle功能
1)分区:决定将map task 交给哪个reduce程序处理;
2)排序:对分区中的数据做排序处理
3)spill写入磁盘:将内存中数据写入磁盘
4)merge合并:将小文件合并成大文件
说明:设置reduce task的个数在run()方法中使用代码:
job.setNumReduceTasks(3)
2、reduce端shuffle功能
1)从map数据中拷贝属于自己分区的数据
2)对分区数据进行合并
3)分组:将形同key的value值组合在一起
3、MapReduce中间数据压缩配置
1)方式一:全局生效
在mapred-site中新增属性
属性:mapreduce.map.output.compress
值:ture
2)方式二:本次生效
在代码中添加:
configuration.set("mapreduce.map.output.compress","true");
时间: 2024-10-23 16:57:26