首页 > 其他 > 详细

hadoop备战:yarn框架的简单介绍(mapreduce2)

时间:2019-04-21 11:05:38      阅读:108      评论:0      收藏:0      [点我收藏+]

新?Hadoop?Yarn?框架原理及运作机制

重构根本的思想是将?JobTracker?两个基本的功能分离成单独的组件,这两个功能是资源管理和任务调度?/?监控。新的资源管理器全局管理全部应用程序计算资源的分配,每个应用的?ApplicationMaster?负责对应的调度和协调。

一个应用程序无非是一个单独的传统的?MapReduce?任务或者是一个?DAG(?有向无环图?)?任务。

ResourceManager?和每一台机器的节点管理server能够管理用户在那台机器上的进程并能对计算进行组织。

新的?Hadoop?MapReduce?框架(Yarn)架构

技术分享图片

上图中?ResourceManager?支持分层级的应用队列。这些队列享有集群一定比例的资源。

从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不正确应用进行监控和状态跟踪。相同,它也不能重新启动因应用失败或者硬件错误而执行失败的任务。

ResourceManager?是基于应用程序对资源的需求进行调度的?;?每个应用程序须要不同类型的资源因此就须要不同的容器。资源包含:内存,CPU,磁盘,网络等等。

能够看出,这同现?Mapreduce?固定类型的资源使用模型有显著差别,它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件。它负责将集群资源分配给多个队列和应用程序。调度插件能够基于现有的能力调度和公平调度模型。

上图中?NodeManager?是每一台机器框架的代理。是执行应用程序的容器,监控应用程序的资源使用情况?(CPU,内存,硬盘,网络?)?而且向调度器汇报

每个应用的?ApplicationMaster?的职责有:向调度器索要适当的资源容器,执行任务。跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。

新旧?Hadoop?MapReduce?框架比对

首先client不变,其调用?API?及接口大部分保持兼容。这也是为了对开发使用者透明化,使其不必对原有代码做大的改变。可是原框架中核心的?JobTracker?和?TaskTracker?不见了。取而代之的是?ResourceManager,?ApplicationMaster?与?NodeManager?三个部分。

详解这三个部分:

首先?ResourceManager?是一个中心的服务,它做的事情是调度、启动每个?Job?所属的?ApplicationMaster、另外监控?ApplicationMaster?的存在情况。细心的读者会发现:Job?里面所在的?task?的监控、重新启动等等内容不见了。这就是?AppMst?存在的原因。ResourceManager?负责作业与资源的调度。

接收?JobSubmitter?提交的作业,依照作业的上下文?(Context)?信息。以及从?NodeManager?收集来的状态信息,启动调度过程,分配一个?Container?作为?App?Mstr

NodeManager?功能比較专一。就是负责?Container?状态的维护,并向?RM?保持心跳。

ApplicationMaster?负责一个?Job?生命周期内的全部工作,相似老的框架中JobTracker但注意每个?Job(不是每一种)都有一个?ApplicationMaster。它能够执行在?ResourceManager?以外的机器上。


Yarn?框架相对于老的?MapReduce?框架什么优势呢?

1.?这个设计大大减小了?JobTracker(也就是如今的?ResourceManager)的资源消耗,而且让监測每个?Job?子任务?(tasks)?状态的程序分布式化了,更安全、更优美。

2.?在新的?Yarn?中。ApplicationMaster?是一个可变更的部分,用户能够对不同的编程模型写自己的?AppMst,让很多其它类型的编程模型能够跑在?Hadoop?集群中。能够參考?hadoop?Yarn?官方配置模板的?mapred-site.xml?配置。

3.?对于资源的表示以内存为单位?(?在眼下版本号的?Yarn?中。没有考虑?cpu?的占用?),比之前以剩余?slot?数目更合理。

4.?老的框架中,JobTracker?一个非常大的负担就是监控?job?下的?tasks?的执行状况,如今,这个部分就扔给?ApplicationMaster?做了,而?ResourceManager?中有一个模块叫做?ApplicationsMasters(?注意不是?ApplicationMaster),它是监測?ApplicationMaster?的执行状况假设出问题,会将其在其它机器上重新启动。

5.?Container?是?Yarn?为了将来作资源隔离而提出的一个框架。这一点应该借鉴了?Mesos?的工作,眼下是一个框架,只提供?java?虚拟机内存的隔离?,hadoop?团队的设计思路应该兴许能支持很多其它的资源调度和控制?,?既然资源表示成内存量,那就没有了之前的?map?slot/reduce?slot?分开造成集群资源闲置的尴尬情况。

新旧?Hadoop?脚本?/?变量?/?位置变化表

技术分享图片

新旧?Hadoop?框架配置项变化表

技术分享图片

技术分享图片

亲。下一博客。就会介绍yarn框架的搭建,耐心等待。




hadoop备战:yarn框架的简单介绍(mapreduce2)

原文:https://www.cnblogs.com/ldxsuanfa/p/10744176.html

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