深入浅出:hadoop分布式资源调度框架yarn

hadoop分布式资源调度框架yarn

1.yarn 的概念
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。可以把yarn 理解为相当于一个分布式的操作系统平台,而mapreduce 等运算程序则相当于运行于操作系统之上的应用程序,Yarn 为这些程序提供运算所需的资源(内存、cpu)。
2. yarn 的架构
在这里插入图片描述
YARN 是一个资源管理、任务调度的框架,主要包含三大模块:ResourceManager(RM)、NodeManager(NM)、ApplicationMaster(AM).
1).ResourceManager 负责所有资源的监控、分配和管理;
2).ApplicationMaster 负责每一个具体应用程序的调度和协调;
3).NodeManager 负责每一个节点的维护。对于所有的applications,RM 拥有绝对的控制权和对资源的分配权。而每个AM 则会和RM协商资源,同时和NodeManager 通信来执行和监控task。
3. yarn 的工作流程
1 ) client 向RM 提交应用程序, 其中包括启动该应用的ApplicationMaster 的必须信息,例如ApplicationMaster 程序、启动
ApplicationMaster 的命令、用户程序等。
2 ) ResourceManager 启动一个container 用于运行ApplicationMaster 。启动中的ApplicationMaster 向ResourceManager 注册自己,启动成功后与RM 保持心跳。
3)ApplicationMaster 向ResourceManager 发送请求,申请相应数目的container。
4) ResourceManager 返回ApplicationMaster 的申请的containers信息。申请成功的container,由ApplicationMaster 进行初始化。container 的启动信息初始化后,AM与对应的NodeManager 通信,要求NM 启动container。AM 与NM 保持心跳,从而对NM 上运行的任务进行监控和管理。
5)container 运行期间,ApplicationMaster 对container 进行监控。container 通过RPC协议向对应的AM 汇报自己的进度和状态等信息。
6) 应用运行期间,client 直接与AM 通信获取应用的状态、进度更新等信息。
7) 应用运行结束后,ApplicationMaster 向ResourceManager 注销自己,并允许属于它的container 被收回。
详细流程见下图:
在这里插入图片描述
4. yarn 的调度器Scheduler
Yarn 中,负责给应用分配资源的就是Scheduler,有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,FairScheduler。
1) FIFO Scheduler
FIFO Scheduler 把应用按提交的顺序排成一个队列,这是一个先进先出队列,在进行资源分配的时候,先给队列中最头上的应用进行分配资源,待最头上的应用需求满足后再给下一个分配,以此类推。
在这里插入图片描述
2)Capacity Scheduler
Capacity 调度器允许多个组织共享整个集群,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。除此之外,队列内部又可以垂直划分,这样一个组织内部的多个成员就可以共享这个队列资源了,在一个队列内部,资源的调度是采用的是先进先出(FIFO)策略。
在这里插入图片描述
3.Fair Scheduler
在Fair 调度器中,我们不需要预先占用一定的系统资源,Fair 调度器会为所有运行的job 动态的调整系统资源。如下图所示,当第一个大job 提交时,只有这一个job 在运行,此时它获得了所有集群资源;当第二个小任务提交后,Fair 调度器会分配一半资源给这个小任务,让这两个任务公平的共享集群资源。
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值