赞
踩
当用户向 YARN 中提交一个应用程序后, YARN将分两个阶段运行该应用程序 。
ApplicationMaster
;ApplicationMaster
根据本次程序内部具体情况,为它申请资源,并监控它的整个运行过程,直到运行完成。ResourceManager
提交应用程序(比如hadoop jar提交MR程序);ResourceManager
为该应用程序分配第一个Container(容器),并与对应的NodeManager
通信,要求它在这个Container中启动这个应用程序的ApplicationMaster
。ApplicationMaster
启动成功之后,首先向ResourceManager
注册并保持通信,这样用户可以直接通过ResourceManager
查看应用程序的运行状态(处理了百分之几);ApplicationMaster
申请到资源后,便与对应的 NodeManager
通信,要求它启动任务。NodeManager
为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行该脚本启动任务。ApplicationMaster
汇报自己的状态和进度,以让 ApplicationMaster
随时掌握各个任务的运行状态,从而可以在任务失败时重新启动任务。在应用程序运行过程中,用户可随时通过RPC 向 ApplicationMaster
查询应用程序的当前运行状态。ApplicationMaster
向 ResourceManager
注销并关闭自己。Scheduler
,它是ResourceManager
的核心组件之一。Scheduler
完全专用于调度作业,它无法跟踪应用程序的状态。FIFO Scheduler
(先进先出调度器)、Capacity Scheduler
(容量调度器)、Fair Scheduler
(公平调度器)。Capacity Scheduler
。yarn-site.xml
中的yarn.resourcemanager.scheduler.class
进行配置。FIFO Scheduler
是Hadoop1.x中JobTracker原有的调度器实现,此调度器在YARN中保留了下来。
FIFO Scheduler
是一个先进先出的思想,即先提交的应用先运行。调度工作不考虑优先级和范围,适用于负载较低的小规模集群。当使用大型共享集群时,它的效率较低且会导致一些问题。
FIFO Scheduler
拥有一个控制全局的队列queue,默认queue名称为default,该调度器会获取当前集群上所有的资源信息作用于这个全局的queue。
优势:
无需配置、先到先得、易于执行
坏处:
任务的优先级不会变高,因此高优先级的作业需要等待
不适合共享集群
Capacity Scheduler
容量调度是Apache Hadoop3.x
默认调度策略。该策略允许多个组织共享整个集群资源
,每个组织可以获得集群的一部分计算能力。通过为每个组织分配专门的队列,然后再为每个队列分配一定的集群资源
,这样整个集群就可以通过设置多个队列的方式给多个组织提供服务了。Hierarchical Queues
)Capacity Guarantees
)Security
)Elasticity
)Fair Scheduler
叫做公平调度,提供了YARN应用程序公平地共享大型集群中资源的另一种方式。使所有应用在平均情况下随着时间的流逝可以获得相等的资源份额。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。