当前位置:   article > 正文

Hadoop的mapreduce的执行过程_hadoop mapreduce执行过程

hadoop mapreduce执行过程

一、map阶段的执行过程

第一阶段:把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。
默认Split size = Block size(128M),每一个切片由一个MapT ask处理。(getSplits)

第二阶段:对切片中的数据按照一定的规则读取解析返回<key,value>对。
默认是按行读取数据。key是每一行的起始位置偏移量,value是本行的文本内容。(TextInputFormat)

第三阶段:调用Mapper类中的map方法处理数据
每读取解析出来的一个<key,value> ,调用一次map方法。

第四阶段:按照一定的规则对Map输出的键值对进行分区partition。默认不分区,因为只有一个reducetask。 分区的数量就是reducetask运行的数量。

 第五阶段:Map输出数据写入内存缓冲区,达到比例溢出到磁盘上。溢出spill的时候根据key进行排序sort。默认根据key字典序排序。

第六阶段:对所有溢出文件进行最终的merge合并,成为一个文件。

二、reduce阶段的执行过程

第一阶段:ReduceT ask会主动从MapTask复制拉取属于需要自己处理的数据。

第二阶段:把拉取来数据,全部进行合并merge,即把分散的数据合并成一个大的数据。再对合并后的数据排序。

第三阶段:对排序后的键值对调用reduce方法键相等的键值对调用一次reduce方法。最后把这些输出的键值对写入到HDFS文件中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/875621
推荐阅读
相关标签
  

闽ICP备14008679号