hadoop之 yarn (简单了解)

Yarn通过两个 守护线程提供核心服务:ResourceManager,管理集群所有资源的切分以及作业的调度与监控;NodeManager,运行在集群所有节点上,启动并监控容器的运行状况,并负责向ResourceManager汇报。

在linux上,hadoop是通过cgroup技术实现container资源隔离的。

下面有两张图,都是一个作业在yarn中运行流程,不过 我觉得第二张图更加清晰易懂,第一张图来自于hadoop权威指南。

 

hadoop之 yarn (简单了解)_第1张图片

 

hadoop之 yarn (简单了解)_第2张图片

 

根据这两张图来说明下一个作业在yarn中运行流转过程。

在yarn上运行一个application:

1. client首先会连接RM,请求运行一个AM(ApplicationMaster负责单个应用程序的管理,监控task的执行) .

2. RM会寻找一个可以运行 AM的 容器的节点,并启动AM。

3. AM通过heartbeat向RM 申请资源。严格的讲,一个application只会运行一次AM。它可以在container简单的运行一个计算,也可以向RM申请更多的资源,运行分布式的计算。

4. 当AM申请到更多的资源时,便会与对应的NM通信,要求其启动任务。

5. 各个任务通过RPC协议向AM汇报自己的状态和进度。当程序运行完毕后,AM向RM注销并关闭自己。

 

你可能感兴趣的:(hadoop)