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一起指向和监控任务。
在这幅图中,有两个客户端都提交了任务,可以看到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指定容器来运行任务。(也就是说任务是在容器中运行的)
所以,任务的执行是这样的:
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