画图加文字描述讲解MapReduce Shuffle过程

画图加文件描述讲解MapReduce Shuffle过程
以下几点注意,必须在作业文档中体现:
1、Map Shuffle主要做了哪些事?哪些可以设置及如何设置?
2、Reduce Shuffle主要做了哪些事?哪些可以设置及如何设置?
3、MapReduce执行过程中中间数据的压缩配置

Shuffle描述着数据从map task输出到reduce task输入的这段过程

画图加文字描述讲解MapReduce Shuffle过程_第1张图片

画图加文字描述讲解MapReduce Shuffle过程_第2张图片
Map Shuffle 主要做了哪些事?哪些可以设置及如何设置?
环形内存缓冲区默认为100MB,当超过80%,则进行spill到磁盘。内存中会进行分区、排序、combine(可选)。磁盘中将多个溢写的文件进行合并,压缩(可选)。
设置:
partitioner分区

job.setPartitionerClass(cls);

sort排序

job.setSortComparatorClass(cls);

combine本地合并

job.setCombinerClass(cls); 

compress压缩
Reduce Shuffle 主要做了哪些事?哪些可以设置及如何设置?
主要进行复制、合并、排序和分组。

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);//设置压缩算法 

https://blog.csdn.net/zipo/article/details/54915389

你可能感兴趣的:(大数据,shuffle)