Hadoop YARN

YARN

YARN功能说明

YARN是一个通用的资源管理系统和调度平台

  • 资源管理系统:集群的硬件资源,和程序运行无关,比如内存,cpu等
  • 调度平台:多个程序同时申请计算资源如何分配,调度的规则
  • 调用:不仅仅支持Mapreduce程序,理论上支持各种计算程序。YARN不关心你干什么,只关心你要资源,在有的情况下给你,用完之后还我

YARN概述

  • 可以把Hadoop理解为相当于一个分布式的操作系统平台,而MapReduce等计算程序则相当于操作系统之上的应用程序,YARN为这些程序提供运算所需的资源(内存、cpu)

  • 因为有了YARN,更多计算框架可以接入到HDFS中,而不单单是MapReduce,正是因为YARN的包容,使得其他计算框架能专注于计算性能的提升

  • HDFS可能不是最优秀的大数据存储系统,但却是应用最广泛的大数据存储系统,YARN功不可没

在这里插入图片描述

YARN三大组件

ResourceManager(RM)

YARN集群的主角色,决定系统中的所有应用程序之间资源分配的最终权限,即最终仲裁者

接收用户的作业提交,并通过NM分配、管理各个机器上的计算资源

NodeManager(NM)

YARN中的从角色,一台机器上一个、负责管理本机器上的计算资源

根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。

ApplicationMaster(AM)

用户提交的每个应用程序均包含一个AM

应用程序内的老大,负责程序内部各个阶段的资源申请,监督程序的执行情况

核心交互流程

  • MR作业提交 Client–>RM

  • 资源申请 MrAPPMaster–>RM

  • MR作业状态汇报 Container(Map|Reduce Task)–>Container(MrAppMaster)

  • 节点的状态汇报 NM–>RM

整体概述

当用户向YARN中提交一个应用程序后,YARN将分为两个阶段运行该应用程序

  • 第一个阶段是客户端申请资源启动运行本次程序的ApplicationMaster

  • 第二个阶段是由ApplicationMaster根据本次程序内部具体情况,为它申请资源,并监控它的整个运行过程,直到运行完成

在这里插入图片描述

MR提交YARN交互流程

  1. 用户通过客户端向YARN中ResourcrManager提供应用程序(比如Hadoop jar提交MR程序)

  2. ResourceManger为该应用程序分配第一个Container(容器),并对应的NodeManager通信,要求它在这个Container中启动这个应用程序的ApplicationMaster

  3. AM启动成功之后,首先向RM注册并保持通信,这样用户可以在RM查看应用程序的运行状态(处理百分之几)

  4. AM为本次程序内部的各个task任务向RM申请资源,并监控它的运行状态

  5. 一旦AM申请到资源后,便与对应的NodeManager通信,要求它启动任务

  6. NodeManger为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务

三种调度器

(1)FIFO Scheduler:是一个先进先出的思想,即先提交的应用先运行

优点

无需配置,先到先得、易于执行

缺点

任务的优先级不会变高,因此高优先级的作业需要等待

不适合共享集群

(2)Capacity Scheduler:容量调度是Apache Hadoop3.x默认调度策略。改策略允许多个组织共享整个集群资源,每个组织可以获得集群的一部分计算能力。通过每个组织分配专门的队列,然后在为每个队列分配一定的集群资源

优点

  1. 层次化的队列设计:层次化的管理,更加容易、更合理分配和限制资源的使用

  2. 容量保证:每个队列都可以设置一个资源占比,保证每个队列都不会占用整个集群的资源

    3.安全:每个队列有严格的访问控制。用户只能向自己队列里面提交任务,而且不能修改或者访问其他队列任务

  3. 弹性分配:空闲的资源可以被分配给任何队列,当多个队列出现争用的时候,则会按照权中比例进行平衡

(3)Fair Scheduler:公平调度,提供YARN应用程序公平地共享大型集群中资源的另一种方式

优点:

  1. 分层队列:对列可以按层次结构排列以划分资源,并可以配置权重以按特定比列共享集群
  2. 基于用户或组的队列映射:可以根据提交任务的用户名或组来分配队列。
  3. 资源抢占:根据应用的配置,抢占何分配资源可以是友好的或是强制的。默认不启用资源抢占
  4. 保证最小配额
  5. 允许资源共享
  6. 默认不限制每个队列和用户可以同时运行应用的数量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值