大数据技术之Hadoop(YARN)

「章节总览」
 
      【hadoop组件—HDFS https://blog.csdn.net/weixin_45404884/article/details/140488744】
      【hadoop组件—MapReduce https://blog.csdn.net/weixin_45404884/article/details/140577542】
      【hadoop组件—YARN https://blog.csdn.net/weixin_45404884/article/details/140578055】

一、YARN介绍

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop资源管
理器。

  • YARN是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度。
  • 它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
    请添加图片描述

二、YARN功能说明

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

三、 YARN3大组件

1.ResourceManager(RM)

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

2.NodeManager(NM)

YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源。
根据RM命令,启动Container容器、监视容器的资源使用情况。并且向RM主角色汇报资源使用情况。

3.ApplicationMaster(AM)

用户提交的每个应用程序均包含一个AM。
应用程序内的“老大”,负责程序内部各阶段的资源申请,监督程序的执行情况。

请添加图片描述

四、MR提交YARN交互流程

  • 第1步、用户通过客户端向YARN中ResourceManager提交应用程序(比如hadoop jar提交MR程序);
  • 第2步、ResourceManager为该应用程序分配第一个Container(容器),并与对应的NodeManager通信,要求它在这个Container中启动这个应用程序的ApplicationMaster。
  • 第3步、ApplicationMaster启动成功之后,首先向ResourceManager注册并保持通信,这样用户可以直接通过ResourceManage查看应用程序的运行状态(处理了百分之几);
  • 第4步、AM为本次程序内部的各个Task任务向RM申请资源,并监控它的运行状态。
  • 第5步、一旦 ApplicationMaster 申请到资源后,便与对应的 NodeManager 通信,要求它启动任务。
  • 第6步、NodeManager 为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。
  • 第7步、各个任务通过某个 RPC 协议向 ApplicationMaster 汇报自己的状态和进度,以让 ApplicationMaster 随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC 向 ApplicationMaster 查询应用程序的当前运行状态。
  • 第8步、应用程序运行完成后,ApplicationMaster 向 ResourceManager 注销并关闭自己。

请添加图片描述

五、YARN资源调度器Scheduler

RN调度程序的工作是根据一些定义的策略为应用程序分配资源。
在YARN中,负责给应用分配资源的就是Scheduler,它是ResourceManager的核心组件之一。

1.调度器策略

Apache版本YARN默认使用Capacity Scheduler。
如果需要使用其他的调度器,可以在yarn-site.xml中的yarn.resourcemanager.scheduler.class进行配置。

(1)FIFO Scheduler(先进先出调度器)

FIFO Scheduler是一个先进先出的思想,即先提交的应用先运行。
FIFO Scheduler拥有一个控制全局的队列queue,默认queue名称为default,该调度器会获取当前集群上所有的资源信息作用于这个全局的queue。

(2)Capacity Scheduler(容量调度器)

允许多个组织共享整个集群资源。
每个组织可以获得集群的一部分计算能力。
通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源。

(3)Fair Scheduler(公平调度器)

所有应用在平均情况下随着时间的流逝可以获得相等的资源份额。
计目标是为所有的应用分配公平的资源(对公平的定义通过参数来设置)。
公平调度可以在多个队列间工作,允许资源共享和抢占。

  • 76
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值