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的更多知识会在下一章专门整理出来一份详细资料。
本文深入解析MapReduce框架的原理及组成,包括Map和Reduce模块如何处理数据,JobClient、JobTracker、TaskTracker的角色与功能,以及HDFS在MapReduce中的作用。
442

被折叠的 条评论
为什么被折叠?



