搜索
写经验 领红包
 > 影视

m的shuffle过程简介(m详细过程)

导语:MR的Shuffle过程

mr的shuffle过程简介(mr详细过程)

Map是映射,负责数据的过滤分法,将原始数据转化为键值对;Reduce是合并,将具有相同的key值得value进行处理后再输出新的键值对作为最终结果。为了让Reduce可以并行处理Map的结果,必须对Map的输出进行一定的排序与分割,然后再交给对应的Reduce,Map端的输出作为Reduce的输入的过程叫做Shuffle.

1、InputFormat读取数据,将数据转换成<key ,value>对,设置FileInputFormat,默认是文本格式(TextInputFormat)

2、map<KEYIN, VALUEIN, KEYOUT, VALUEOUT> 默认情况下KEYIN:LongWritable,偏移量。VALUEIN:Text,KEYOUT与VALUEOUT要根据我们的具体的业务来定。

3、map输出到reduce之前这个阶段是mr的shuffle阶段。

map输出的<key , value>对首先放在内存中,当达到一定的内存大小,就会溢写(spill)到本地磁盘中,可能有很多文件。spill过程有两个操作,分区(partition)和排序(sort)。当map task结束后可能有很多的小文件,spill。那么我们需要对这些文件合并(merge),排序成一个大文件。此时map阶段才结束。

Reduce task 回到Map Task运行的机器上,拷贝要处理的数据。然后合并(merge),排序,分组(group)将相同key 的value 放在一起,完成了reduce 数据输入的过程。

4、reduce<KEYIN, VALUEIN, KEYOUT, VALUEOUT>,map输出的<key , value>数据类型与reduce输入<key , value>的数据类型一致。

5、TextOutputFormat最后将结果输出到文件系统上,每个< key , value >对, key与value中间分隔符为\t,默认调用 key 和 value 的 toString() 方法。

大数据HBase原理

大数据和云计算的关系

大数据技术生态体系

大数据JUC面试题

大数据之Kafka集群部署

本文内容由小玥整理编辑!