MapReduce数据处理流程(四)

一图胜千言

MapReduce数据处理流程(四)_第1张图片

 ​​​​MapReduce数据处理流程(四)_第2张图片

 

MapReduce数据处理流程(四)_第3张图片

 MapReduce数据处理流程(四)_第4张图片

    ①Map Task调用run方法 

    ②③循环调用LineRecordReader,读取文件中的数据,具体读取方式取决于 InputFormat的类型(默认是TextInputFormat)

   ④返回数据,其中key为数据偏移量,value为某一行数据

   ⑤⑥⑦读取到的数据,序列化后写入环形缓冲区。写满80%之后,环形缓冲区会发生溢出,在这之前需要按照Key对数据进行排序,然后将数据写出到本地磁盘(包含kv数据,以及一份索引文件-记录kv所属分区,分区偏移量等)。

⑧ 对多份溢出的小文件进行合并,生成一份包含分区且有序的SequenceFile

⑨⑩ Reduce Task通过Node manager提供的服务,基于Http协议,拉取上一步map task落地磁盘的文件,并存放到本地磁盘。不同的task任务拉取特定分区的数据,并对数据进行合并

⑪对读取到的kv数据进行reduce逻辑计算

⑫将计算结果写出到文件

你可能感兴趣的:(Hadoop,hadoop)