YARN架构解析

YARN是Hadoop的资源管理器,将资源管理和作业调度分离。ResourceManager负责全局资源分配,调度器按需分配资源给应用程序,而ApplicationMaster负责任务管理和资源申请。NodeManager监控每个节点的资源使用,Container作为资源分配单位。YARN支持资源预留和多种调度策略,如CapacityScheduler和FairScheduler。资源管理重点关注内存和CPU,通过Cgroups实现资源隔离。
摘要由CSDN通过智能技术生成

转载:https://blog.csdn.net/xuejingfu1/article/details/52801140

MapReduce在YARN上被执行。以下内容涉及的task均是指map tasks或者reduce tasks.

YARN的基本思想:是将资源管理和作业的调度/监控相分离,使它们运行在不同的守护进程中。

该思想是为了达到:有一个全局的ResourceManager以及每个Application独有的ApplicationManager。
一个Application可能是单个job,也可能是一DAG(有向无环图)的jobs.


ResourceManager和NodeManager组成了数据计算框架。ResourceManager有最高权威,它可以在系统中的所有Applications之间仲裁资源的归属。
NodeManager是每个工作节点的框架代理,负责containers、监控他们的资源(cpu,memory,disk,network)使用情况并把这些信息report给ResourceManager/Scheduler

每个Application的ApplicationManager实际上是一个框架具体的库,其任务是从ResourceManager申请资源,并和NodeManager一起来执行、监控tasks。

ResourceManager有两个主要的组件:Scheduler(调度器)和ApplicationsManager(应用管理器)
Scheduler负责分配资源给各种运行着的applications,这些applications受容量、排队等常规情况的限制。
就Scheduler不监控、跟踪application的状态而言,可以说它是一个纯粹的Scheduler.
当然,它也不保证在application故障或硬件故障时重启那些失败的tasks.
Scheduler基于applications的需求来执行他的调度功能(scheduling function);
它这样做是基于资源容器(resource Container)的抽象概念,资源容器整合了多种元素:内存、cpu、磁盘和网络等资源。
Scheduler有一个可插拔的政策(pluggable policy),负责在各种queues、applications等之间给集群资源分区。当前的CapacityScheduler和FairScheduler就可以作为一些插件的例子。

ApplicationsManager负责接收job的提交,申请第一个container来执行当前application具体的A

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值