首页 > 其他 > 详细

Hadoop随笔

时间:2014-08-20 02:44:46      阅读:265      评论:0      收藏:0      [点我收藏+]

Mapreduce 处理的数据必须具备的特点:

--待处理的数据可以分解成许多小的数据集,而且每个数据集都可以完全并行的处理

计算模型的核心部分是map和Reduce函数:

--这两个函数的功能由用户根据需要自己实现,只要能够按照用户自定义的规则,

将输入的键值对转换成另一批键值对输出即可

在map阶段,MapReduce框架将任务的输入数据分割成固定大小的片段,每个片段进一步分解成一批的键值对

Hadoop会为每个片段分map任务,把键值对作为输入,得到计算的中间结果<key,value>,然后再根据key进行

排序,将key值相同的value放到形成的一个列表中,组成一个元组<key,list(v2)>,最后再根据key值得规范,

将这些元组进行分组,对应不同的Reduce任务

在Reduce阶段,reduce把从不同Mapper接受来的数据进行整合排序,然后调用用户自定义的reduce函数对输入

的<key,list(v2)>进行计算,得到<key,value>输出到Hdfs上

1.任务的调度与执行

--MapReduce任务由JobTracker和TaskTracker两个节点控制完成,jobTracker主要是调度和管理Tasktarcker

,Map和Reduce任务是由JobTracker分配给空闲的TaskTracker,由TaskTracker复制这些任务的并行执行。TaskTracker

必须运行在DataNode上,所有DataNode是数据的存储节点也是数据的计算节点,JobTracker负责监控TaskTracker的任务

的运行情况,如果TaskTracker任务失败,Job会将任务重新分配给别的空闲的TaskTracker,如果JobTracker失败任务将

直接失败

2.本地计算

MapReduce框架尽最大努力保证在存储节点上执行计算任务,减少数据在网络中的传输

3.Shuffle过程

MapReduce会将Mapper的输出结果按照key值分成R份(R是预先定义的Reduce个数),划分时常使用hash函数例如,

Hash(key) mod R,这样可以保证某一个范围内的key一定由某个Reduce来处理,从而简化Redcue过程

4.合并Mapper的输出

5.读取中间结果

在完成Combine和Shuffle后,Mapper的输出结果将直接被写到本地磁盘,然后会告诉JobTracker中间结果的文件

位置,再有JobTracker告诉Reduce到哪个DataNode去读取中间结果

6.任务管道


本文出自 “落寞” 博客,请务必保留此出处http://qinheng.blog.51cto.com/8764944/1542286

Hadoop随笔,布布扣,bubuko.com

Hadoop随笔

原文:http://qinheng.blog.51cto.com/8764944/1542286

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!