Hadoop集群资源管理系统YARN

Hadoop生态分层

YARN应用.png

YARN应用运行机制

YARN通过两类长期运行的守护进程提供自己的核心服务:管理集群上资源使用的资源管理器(resource manager)、运行在集群中所有节点上且能够启动和监控容器的节点管理器(node manager)。容器用于执行特定应用程序的进程,每个容器都有资源限制(CPU、内存等),一个容器可以是一个Unix进程,也可以是一个Linux cgroup,取决于YARN配置,YARN运行机制如下:

YARN运行机制.png

运行机制解析

1.首先,客户端联系资源管理器,要求它运行一个application master进程。

2.然后资源管理器找到一个能够在容器中启动application master的节点管理器。

3.application master启动后行为依赖于应用本身,可能是在所处容器中进行运算,然后两结果返回给客户端;抑或是向资源管理器请求更多的容器。

4.请求更多的容器,用于运行一个分布式计算。

资源请求

资源请求模型:当请求多个容器时,可以指定每个容器需要的计算机资源数量(内存和CPU),还可以指定对容器的本地限制要求。

应用生命期

YARN应用的生命期差异很大,一般按照应用到用户运行的作业之间的映射关系对应用进行分类,有如下分类模型:

  • 模型1:一个用户作业对应一个应用,这是MapReduce采取的方式。

  • 模型2:作业的每个工作流或者每个用户对话对应一个应用。Spark采用这种模型。

  • 模型3:多个用户共享一个长期运行的应用,通常作为一种协调者出现。

YARN中的调度

调度选项

YARN中有三种调度器可用:FIFO调度器(FIFO Scheduler)、容量调度器(Capacity Scheduler)、公平调度器(Fair Scheduler)

  • FIFO调度器:优点是简单易懂,不需要任何配置,但不适合共享集群。多个作业运作时需要阻塞等待。

  • 容量调度器:以整个集群的利用率为代价,一个独立的专门队列保证小作业一提交就能启动。

  • 公平调度器:不需要预留一定量的资源,调度器会在所有运行的作业之间动态平衡资源。


参考资料:
《Hadoop权威指南》

你可能感兴趣的:(Hadoop集群资源管理系统YARN)