Hadoop执行过程

转自:http://wangyuanzju.blog.163.com/blog/static/130292011111543033934/

根据Hadoop++论文的描述,Hadoop执行过程分为Load、Map、Shuffle、Reduce这四个阶段,可以看成是一个由split、itemize、map、reduce等10个函数或算子组成的DAG。其中每一个函数或算子,都可以提供自定义的实现以此来扩展Hadoop的功能或优化性能。

1、Load阶段
输入数据经block函数,按配置的block大小切分成多个block,每个block按配置存储多个复本,Hadoop尽可能保证不同复本存储在不同结点上。

2、Map阶段
每个mapper子任务读取一个split。每个split包含一个或多个block,是一个逻辑单元。split函数决定怎么划分split。split通过itemize函数分割成记录,框架对每条记录调用map函数。map的输出由mem函数切割成多个spill。spill中的每条记录由sh函数决定输出到哪个reducer,为每个reducer产生一个逻辑分区。每个逻辑分区根据cmp函数排序并根据grp函数分组,再根据combine函数进行预reduce处理后存储到文件。如果一台mapper机上对某个reducer产生了多个上述处理所得的spill文件,则进行合并,合并时同样执行排序、分组和combine流程。

3、Shuffle阶段
每个mapper产生的spill文件再次经过sh函数分派给每个reducer。每个reducer从每个mapper接收给它的数据,如果能在内存中合并就在内存中合并,否则接收后先存储,等全部完成后再来合并。最终为每个reducer准备好一个待处理的文件。

4、Reduce阶段
每个reducer的输入文件先同样执行排序、分组和combine流程,然后根据reduce函数得到最终结果。

下面的图显示了一个有4个节点,4个mapper,2个reducer的Map Reduce程序的执行过程。
Hadoop执行过程 - 风轻扬 - 风轻扬

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值