【MR】剖析 YARN 框架

【MR】剖析 YARN 框架

大数据现在越来越火,各种计算框架不断出现,比如内存计算框架(Spark)、流式计算框架(Storm)、迭代式计算框架(iMapReduce)等新型计算框架的出现,经典MR计算框架(MRv1)的局限性日益突出。比如拓展性,不支持部分计算框架,即使支持,操作起来也很复杂,还有资源利用率比较低等等问题。
2010年牛逼雅虎团队设计出也新的框架—-YARN(MRv2)。全名Yet Another Resource Negotiator.一个多种计算框架通用的资源调度体系,为不同的并行化计算提供资源分配服务。这样,YARN支持的计算框架只要实现YARN定义的接口,便可以运行在YARN之上,从而很好地打造一个以YARN为核心的生态系统。

YARN基本设计思想是将原MapReduce架构中JobTracker的两个主要功能,即资源管理和作业调度/监控分成两个独立组件,全局的ResourceManager和与每个应用相关的ApplicationMaster。

1,YARN框架组成
这里写图片描述

如上图所示
YARN主要由Resource Manager、NodeManager、ApplicationMaster和Container等四个组件构成。
ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。用户提交应用程序时,需要提供一个跟踪和管理这
个程序的应用程序主控节点(ApplicationMaster),由它
向ResourceManager申请资源,并要求NodeManager按ApplicationMaster申请到的Container资源信息来启动任务。

感觉YARN和操作系统有点相似,操作系统也是为每个应用创建一个进程,然后操作系统分配资源,这进程对该应用的所有资源进行管理。可以简单地理解为下图,各个计算框架都可以运行在YARN上,并由YARN协调管理
这里写图片描述

YARN框架各组件功能
1,ResourceManager:有两个主要组件:Scheduler和ApplicationsManager构成。
Scheduler:调度程序负责将资源分配给各种运行的应用程序,调度器是纯粹的调度器,因为它不执行应用程序的状态监视或跟踪。同时,它不能保证重新启动由于应用程序失败或硬件故障失败的任务。调度程序根据应用程序的资源需求执行调度功能。它基于一个资源容器的抽象概念,它包含了内存、cpu、磁盘、网络等元素。
ApplicationsManager:一个应用程序管理器,它负责整个系统中应用程序的启动和关闭、访问权限、资源使用期限等

2,ApplicationMaster
用户提交的每个应用程序均包含一个应用程序主控节点AM,负责跟踪和管理应用程序,主要负责:
(1)与RM的资源调度器协商以获取资源;
(2)将得到的资源分配给内部任务;
(3)与NM通信以启动/停止任务;
(4)监控所有任务运行状态,并在任务运行失败时重新运行任务。

3,NodeManager
负责每个节点上资源和任务的管理,主要负责:
(1)定时向RM汇报本节点上的资源使用情况和各个Container的运行状态;
(2)接收并处理来自AM的Container启动/停止等请求。

4,Container
一个资源容器的抽象概念。容器是动态资源(内存、CPU、磁盘、网络等)的分配单位,负责封装某个节点上的资源,当AM向RM申请资源时,RM为AM返回的资源以Container表示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MR on YARN(MapReduce on Yet Another Resource Negotiator)是一种在Hadoop生态系统中运行MapReduce作业的方式。它的工作原理如下: 1. 提交作业:用户通过客户端向YARN资源管理器(ResourceManager)提交MapReduce作业。作业包括MapReduce程序的代码和配置信息。 2. 资源分配:ResourceManager接收到作业后,将其分解为多个任务(Task),包括Map任务和Reduce任务。然后,ResourceManager根据集群中可用的资源情况,将这些任务分配给不同的节点(NodeManager)执行。 3. 任务执行:每个节点上的NodeManager接收到任务后,会启动一个容器(Container)来执行该任务。容器是一个隔离的执行环境,其中包含了任务所需的资源和环境。 4. Map阶段:在Map阶段,每个Map任务会读取输入数据,并将其划分为多个键值对。然后,Map任务会将这些键值对按照指定的逻辑进行处理,并生成中间结果。 5. Shuffle阶段:在Shuffle阶段,Map任务的中间结果会被分区、排序和分组,以便传输给Reduce任务进行处理。这个过程涉及到数据的排序和网络传输。 6. Reduce阶段:在Reduce阶段,每个Reduce任务会接收到一组经过Shuffle阶段处理的中间结果。Reduce任务会对这些结果进行合并、计算和输出,生成最终的结果。 7. 完成作业:当所有的Map任务和Reduce任务都完成后,作业会被标记为完成,并将最终的结果输出到指定的位置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值