MapReduce的详细工作流程

3. MapReduceTask工作流程

整理自Hadoop技术内幕

3.1 概述

MapReduce框架中,一个Task被分为Map和Reduce两个阶段,每个MapTask处理数据集合中的一个split并将产生的数据溢写入本地磁盘;而每个ReduceTask远程通过HTTP以pull的方式拉取相应的中间数据文件,经过合并计算后将结果写入HDFS。

3.2 MapTask

在这里插入图片描述

客户端提交任务,规划切片,并将切片文件,程序jar包与任务配置文件上传,Hadoop集群分配节点执行任务;

  • Read阶段:MapTask按InputFormat中定义的方法将数据读取如内存;

  • Map阶段:将内存中的数据按map()函数定义的方法处理成K-V对的形式;

  • Collect阶段:将K-V对的数据与索引向两个方向写入环形缓冲区(默认100M大小);

    • 调用Partitioner.getPartition()获取记录的分区号,再将<key,value,partition>传给MapOutputBuffer.collect()做进一步处理;

    • MapOutputBuff

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值