【Hadoop】MapReduce工作流程

MapReducer工作流程

请添加图片描述

读数据

1.客户端提交作业任务;

2.Job根据作业任务获取文件信息;

3.InputFormat将文件按照设定的切片大小(一般切片大小等于HDFS中的Block块大小)进行切片操作,并将切片的数据读入并生成一个MapTask任务;

Mapper

4.MapTask通过InputFormat获得RecordReader,从InputSplit中获取并解析出对应的key-value;

5.将解析的key-value经由编写的map()方法进行处理并产生新的key-value;

6.将生成的key-value进行第一次排序,排序后的数据将进行落盘操作;

Shuffle

7.由Map阶段生成的key-value首先进入(位于内存中的)一个环形缓冲区,该缓冲区的大小默认为100M;

8.当环形缓冲区中的数据大小达到整个缓冲区大小的80%时,缓冲区将会把数据溢出并进行分区和排序操作,之后将会进行第一次溢写操作,完成溢写后可以对数据进行合并(combiner);

9.此时数据可以进行再次的分区、排序、合并,之后将溢出到文件;

Reducer

10.ReducerTask将数据拷贝到本地磁盘,并进行归并排序操作;

11.按照key值将数据进行分组操作,相同的key的数据将会由一个reducer方法进行处理;

12.最后ReduceTask将汇总所有reducer()方法输出的结果;

写数据

13.OutputFormat从Reducer中获取数据并通过RecordWriter将数据写入文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值