MapReduce

本文深入解析MapReduce框架的原理及组成,包括Map和Reduce模块如何处理数据,JobClient、JobTracker、TaskTracker的角色与功能,以及HDFS在MapReduce中的作用。

MapReduce原理介绍

MapReduce框架介绍

mapreduce模型通过命名就可以看出,其主要是由两个模块,一个是Map,另一个是rduce。map主要是负责对数据的分析处理最终转化为key-value数据对;Reduce类主要是获取数据对,然后统计处理得到结果。

注意:MapReduce实现了存储的均衡,但是没有实现计算的均衡。

MapReduce框架主要包括JobClient、JobTracker、TaskTracker、HDFS四个独立的部分。

1、Jobclient

配置configuration,并打包成jar文件存储在HDFS上,将文件路径提交给JobTracker的Master服务,然后由Master创建每个task将它们分发到各个TaskTracker服务中执行。

2、JobTracker(master服务)

程序启动后,JobTracker负责资源监控和作业调度,监控所有TaskTracker和job的健康状况,一旦发生失败,即将之转移到其他节点上,同时JobTracker会跟踪任务的执行进度、资源使用量等信息,并将这些信息传给任务调度器,而调度器就会在资源空闲时进行资源分配。

在Hadoop中,任务调度器是一个可插拔的模块,用户可以根据自己的需要涉及相应的调度器。

3、TaskTracker(slaver服务)

TaskTracker是执行器。如果说JobTracker是司令那么,TaskTracker就是士兵。TaskTracker会根据心跳机制将资源的使用情况和任务的运行进度传输给JobTracker,同时接受JobTracker的指令并执行。

TaskTracker使用“Slot”来划分本节点上的资源量。一个Task获取到一个Slot后才有机会运行,而Hadoop调度器的作用就是将各个TakTracker上的空闲slot分配给Task使用。slot分为map和reduce两种,task对应也分为map和reduce两种。

HDFS以block块存储数据,split是在block基础上划分的,MapReduce处理最小的单位为split;

4、HDFS

说起HDFS,相比于NFS,比较突出的是HDFS存储文件大小是可以非常大的。但是HDFS对于低延时的场景需求是不太友好。关于HDFS的更多知识会在下一章专门整理出来一份详细资料。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值