九、用图讲解MapReduce Shuffle 过程

 
Map Shuffle 主要做了哪些事?哪些可以设置及如何设置?
环形内存缓冲区默认为100MB,当超过80%,则进行spill到磁盘。内存中会进行分区、排序、combine(可选)。磁盘中将多个溢写的文件进行合并,压缩(可选)。
设置:
1) partitioner分区       
job.setPartitionerClass(cls);
 2) sort排序
job.setSortComparatorClass(cls);
 3) combine本地合并   
job.setCombinerClass(cls);
     4) compress压缩
Reduce Shuffle 主要做了哪些事?哪些可以设置及如何设置?
主要进行复制、合并、排序和分组。
分组设置:
job.setGroupingComparatorClass(cls);
3) 在Shuffle 阶段中的Comparator 如何理解作用?。
Comparator作为key的比较器,对key的排序和分组起主要作用。
4) MapReduce 执行过程中中间数据的压缩配置
在程序中将mapred.compress.map.out设置为true,并且可以设置压缩算法。
Configuration conf=new Configuration();
//设置输出压缩
conf.setBoolean("mapred.compress.map.out", true);//设置map输出压缩
conf.setBoolean("mapred.output.compress", true);//设置输出压缩
conf.setClass("mapred.output.compression.codec", GzipCodec.class,
CompressionCodec.class);//设置压缩算法 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值