查看: 115|回复: 0

扣丁学堂大数据培训简述Hadoop2运行机制

发表于 2018-7-11 11:51:56

本篇文章扣丁学堂大数据培训小编和大家分享一下Hadoop2运行机制,文章中会有代码列出供大家参考。对大数据感兴趣的小伙伴现在就随扣丁学堂的小编一起来了解一下吧。


1、Resource Manager,Application Master 和 Node Manager
在Hadoop2中将JobTracker两个主要的功能分离成单独的组件,这两个功能是资源管理(Resource Manager)和任务调度/监控(Application Master)。
新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。
事实上,每一个应用的ApplicationMaster是一个详细的框架库,它结合从ResourceManager获得的资源和 NodeManager 协同工作来运行和监控任务。
在上图中ResourceManager支持分层级的应用队列,这些队列享有集群一定比例的资源。从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。
ResourceManager 是基于应用程序对资源的需求进行调度的 ; 每一个应用程序需要不同类型的资源因此就需要不同的容器。资源包括:内存,CPU,磁盘,网络等等。可以看出,这同现 Mapreduce 固定类型的资源使用模型有显著区别,它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件,它负责将集群资源分配给多个队列和应用程序。调度插件可以基于现有的能力调度和公平调度模型。
在上图中 NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。
在上图中,每一个应用的 ApplicationMaster的职责有:向调度器索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。
2、调用顺序呢



(1)客户端的Map Reduce程序通过hadoop shell提交到hadoop的集群中。
(2)程序会通过RPC通信将打成jar包的程序的有关信息传递给Hadoop集群中RM(ResourceManager),可称为领取Job ID的过程。
(3)RM将提交上来的任务分配一个唯一的ID,同时会将run.jar的在HDFS上的存储路径发送给客户端。
(4)客户端得到那个存储路径之后,会相应的拼接出最终的存放路径目录,然后将run.jar分多份存储在HDFS目录中,默认情况下备份数量为10份.可配置。
(5)客户端提交一些配置信息,例如:最终存储路径,Job ID等给RM。
(6)RM会将这些配置信息放入一个队列当中,供调度器调用.至于调度的算法,不必深究。
(7)NM(NodeManager)和RM是通过心跳机制保持着通信的,NM会定期的向RM去领取任务。
(8)RM会在任意的一台或多台的NM中,启动任务监控的进程Application Master.用来监控其他NM中YARN Child的执行的情况。。
(9)NM在领取到任务之后,得到信息,会去HDFS的下载run.jar.然后在本地的机器上启动YARN Child进程来执行map或者reduce函数.map函数的处理之后的中间结果数据会放在本地文件系统中的。
(10)在结束程序之后,将结果数据写会HDFS中。
一个Job从提交到执行的过程差不多如上所述。
以上就是扣丁学堂大数据在线学习小编给大家分享的Hadoop2运行机制简介,希望对小伙伴们有所帮助。想要了解更多内容的小伙伴可以登录扣丁学堂官网咨询,扣丁学堂是专业的大数据培训机构,不仅有专业的老师和与时俱进的课程体系,还有大量的大数据在线视频供学员观看学习。喜欢大数据开发想要学习的小伙伴快快行动吧。扣丁学堂大数据学习群:209080834。


文章转载自:扣丁学堂http://www.codingke.com/


回复

使用道具 举报