欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

YARN

程序员文章站 2022-06-17 09:29:54
http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html Apache Hadoop YARN YARN的主要功能包括:资源管理和任务调度及监控,它们各自都是独立的守护进程。要实现这个目标,必须有一个全局 ......

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

Apache Hadoop YARN

YARN的主要功能包括:资源管理和任务调度及监控,它们各自都是独立的守护进程。要实现这个目标,必须有一个全局的资源管理器和每个应用都有一个ApplicationMaster(AM)。应用可以是单个job,也可以是DAG jobs。

ResourceManager和NodeManager组成数据计算框架。ResourceManager对系统中所有应用的资源拥有最终仲裁权。NodeManager对容器负责,监控它们的资源使用情况,并且将其报告给ResourceManager。

每个应用都有一个ApplicationMaster,它负责向ResourceManager申请资源,并且和NodeManager一起指向和监控任务。

YARN

在这幅图中,有两个客户端都提交了任务,可以看到NodeManager向ResourceManager报告,ApplicationMaster向Resource申请资源并且监控任务执行。

 

ResourceManager有两个主要的组件:Scheduler和ApplicationManager

Scheduler负责分配资源

ApplicationManager负责接受提交的任务,并且分配第一个container为了执行特定的ApplicationMaster。每个应用的ApplicationMaster负责向Scheduler申请适量的资源,并且跟踪资源的状态和监控进度。

 

总结一下:

1、ResourceManager包括Scheduler和ApplicationManager

2、ResourceManager负责集群中所有应用的资源分配(资源包括内存、CPU、磁盘、网络等等)

3、Scheduler只是一个单纯的调度器,负责给不同的应用分配资源

4、每个应用都有一个ApplicationMaster,它负责向ResourceManager申请资源,并且跟踪资源的使用情况还有任务的执行情况

5、NodeManager负责运行并且管理本节点的容器(资源)。AppMaster指定容器来运行任务。(也就是说任务是在容器中运行的)

YARN

 

所以,任务的执行是这样的:

1、客户端提交任务到ResourceManager

2、ApplicationManager接收任务,并且指定一个NodeManager给它分配第一个资源(container)用户执行ApplicationMaster

3、NodeManager启动一个ApplicationMaster

4、AppicationMaster向ResourceManager申请资源(PS:其实是向Scheduler申请),并且监控资源的使用情况,监控任务的执行进度

5、任务开始执行

 

总的来说,AppMaster负责协调并监控资源,NodeManager负责管理本地资源,启动/停止任务

 

参考

http://blog.csdn.net/liuwenbo0920/article/details/43304243

http://blog.csdn.net/paicMis/article/details/53890676

https://www.cnblogs.com/chushiyaoyue/p/5784871.html