这是我的第22篇原创
MapReduce是分布式计算的鼻祖,虽然我们已经不需要再写MR了,但是了解MR的底层逻辑,对解决各种分布式遇到的问题、调优,有极大的帮助。废话不多说,OK,let's GO!
大数据工程师版
MapReduce流程分为4个步骤:
input:从hdfs中读取文件,数据读取组件是TextInputFormat和LineRecordReader。
mapper:根据input步骤读取过来的数据,进行数据映射。之后进行混洗,混洗主要进行分区、排序和合并。
reduce:混洗好的数据交给Reduce步骤进行计算。
output:Reduce计算好的数据经过TextOutputFormat和LineRecordQriter组件,输出到对应OutPutPath中。
大数据高级工程师版
MapReduce流程分为7个步骤:
数据读取:从hdfs中读取文件,数据读取组件是TextInputFormat和LineRecordReader。
数据分片:调用Job.steInputFormaiClass()定义的InputFormat,将数据切分成小的Split。
Mapper:每一个Split生成一个MapTask,对每个分片中的数据进行排序,并进行部分合并,刷写到磁盘中。
Shuffle:将每个MapTask中处理好的数据,