MapReduce

一 概述:

(1)MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段,每个阶段都以键/值对作为输入和输出,并由程序员选择它们的类型。其中map阶段的输出必须和reduce阶段的输入类型一致。


(2)MapReduce作业(job)是客户端需要执行的一个工作单元:它包括输入数据、MapReduce程序和配置信息。

Hadoop将作业分为小任务(task)来执行,其中包括两类任务:map任务和reduce任务。

map任务的数量由输入分片的数量决定;reduce任务的数量可由参数指定。



(3)有两类节点控制作业执行过程:一个jobtracker和一系列tasktracker

jobtracker通过调度tasktracker上运行的任务,来协调所有运行在系统上的作业。

tasktracker在运行任务的同时将运行进度报告发给jobtracker,jobtracker由此记录每项作业任务的整体进度。


(4)Hadoop将MapReduce的输入数据划分成等长的小数据块,称为输入分片(input split)或简称分片。

Hadoop会为每一个分片构建一个map任务,并由该任务来运行用户自定义的map函数从而处理分片中的每条记录;reduce阶段对每个key调用reduce函数。


(5)数据本地化Hadoop在存储有输入数据的节点上运行map任务,可以获得最佳性能。

reduce任务不具备数据本地化的优势——单个reduce任务的输入通常来自于所有的map任务的输出。

reduce任务的数量不是由输入数据决定的,而是特别指定的。


(6)每个reduce任务都有一个输出文件,reduce的输出通常保存在HDFS中以实现可靠存储。

map任务的将其输出写入本地磁盘而非HDFS。原因:因为map任务的输出是中间结果,该中间结果由reduce任务处理后才产生最终结果,而且一旦作业完成,map的输出结果可以被删除,因此把它存储在HDFS中并实现备份,难免有些小题大做。


二 MapReduce作业运行机制

待续...


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值