Hadoop YARN

基本思想

教程:
https://mp.weixin.qq.com/s/JEw7qCze2vlt9ys_Fe7cFA

YARN(Yet Another Resource Negotiator)是一个分布式资源管理框架,基本思想是将资源管理和作业调度/监视的功能分解为单独的守护进程。一个全局ResourceManager(RM)和每个应用程序ApplicationMaster(AM),应用程序可以是单个作业,也可以是作业的DAG。

ResourceManager和NodeManager构成了数据计算框架。
- ResourceManager在整个集群中只能有一个,它掌握了整个集群的资源分布情况,响应资源申请,为Application分配资源。主要有三个功能:1⃣资源调度;2⃣application生命周期管理;3⃣nodemanager生命周期管理;
- NodeManager是每台机器框架代理,整个集群中可以有多个NodeManager,它启动之后会向ReosurceManager报告自己的资源(内存、cpu等)情况。当ResourceManager把程序丢过来的时候它会为程序提供一个运行环境(Container)。
- ApplicationMaster实际上是一个特定于框架的库,其任务是协调来自ResourceManager的资源,并与NodeManager一起执行和监视任务。

在Hadoop 2.0中Hadoop底层划分为YARN和HDFS两个部分。YARN提供了集群资源管理,HDFS提供了分布式存储。在此之上开发出来的应用被称为Application,MapReduce就是其中的一个Application。需要注意的是:

  • YARN和HDFS没有任何关系,甚至连代码都是可以彼此独立编译的;
  • YARN和MapReduce也是彻底解耦的,绝对不存在”YARN为了M/R做了特殊优化”的说法;
  • 基于YARN我们可以开发自己的Application,比如Spark就属于YARN上的一个Application。当然这个Application可以和HDFS没有关系也可以和M/R没有关系;

yarn的工作过程:
1. NodeManager启动之后会向ResourceManager报告自己的资源分配情况;
2. Client(其实就是Application)会先向ResourceManager申请提交应用(SubmitApplication);
3. ResourceManager会返回集群中所有可用资源;
4. Client申请一个Container用来运行ApplicationMaster的部分;
5. ResourceManager选择一份资源把任务下发到NodeManager;
6. NodeManager会启动一个Container来执行ApplicationMaster;

至此,一级资源分配完毕,接下来的工作是ApplicationMaster和ResourceManager交互完成剩余资源申请工作。

  1. ApplicationMaster向ResourceManager申请资源用于执行实际计算任务;
  2. ResourceManager会根据情况返回可用的资源(所有的申请未必全部满足);
  3. ApplicationMaster也会根据实际情况决定是否使用申请到的资源;
  4. ApplicaitonMaster申请到的资源依然交给NodeManager处理,NodeManager会启动Container用来执行计算任务

ResourceManager有两个主要组件:Scheduler和ApplicationsManager。

  • Scheduler:调度程序负责根据容量,队列等约束将资源分配给各种正在运行的应用程序,根据应用程序的资源需求执行其调度功能。调度程序是纯调度程序,因为它不负责应用程序状态的监视或跟踪。此外,也不会重启由于应用程序故障或硬件故障导致失败的任务。
  • ApplicationsManager:负责接受作业提交,协商第一个容器以执行特定于应用程序的ApplicationMaster,并提供在失败时重新启动ApplicationMaster容器的服务。每个应用程序ApplicationMaster负责从Scheduler协商适当的资源容器,跟踪其状态并监视进度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黄鸭and小黑鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值