Hadoop 2.X -- YARN

YARN最初设计是为了解决Hadoop中MapReduce计算框架中的资源管理问题,但如今它已是一个更加通用的资源管理系统,能够把MapReduce计算框架做为一个应用程序运行在YARN系统之上,经过YARN来管理资源。html

若是你的应用程序也须要借助YARN的资源管理功能,你也能够实现YARN提供的API,将应用程序运行于YARN之上,资源分配与回收统一交给YARN去管理,能够大大简化资源管理功能的开发。apache

当前,也有不少应用程序已经能够构建于YARN之上,如Storm、Spark等计算框架。网络


YARN Client提交Application到ResourceManager,它会首先建立一个Application上下文件对象,并设置ApplicationMaster必需的资源请求信息,而后提交到ResourceManager。YARN Client也能够与RM通讯,获取到一个已经提交并运行的Application的状态信息等,具体详见后面ApplicationClientProtocol协议的分析说明架构


ResourceManager是YARN集群的Master,负责管理整个集群的资源和资源分配。框架

ResourceManager做为集群资源的管理和调度的角色,若是存在单点故障,则整个集群的资源都没法使用。oop


NodeManager是集群中实际拥有实际资源的工做节点,主要负责启动应用所需的容器,监控资源的使用状况并将之汇报给调度器。Client提交Job之后,会将组成Job的多个Task调度到对应的NodeManager上进行执行。spa


ApplicationsManager:负责接收做业,协商获取第一个容器用于执行ApplicationMaster和提供重启失败ApplicationMaster container的服务。架构设计


ApplicationMaster:负责同调度器协商以获取合适的容器,并跟踪这些容器的状态和监控其进度。设计


Container:容器中封装了机器资源,如内存,CPU, 磁盘,网络等,每一个任务会被分配一个容器,该任务只能在该容器中执行,并使用该容器封装的资源。orm





参考资料:

[0]  MapReduce NextGen aka YARN aka MRv2

http://hadoop.apache.org/docs/r2.7.0/hadoop-yarn/hadoop-yarn-site/index.html


[1] Hadoop YARN架构设计要点

http://shiyanjun.cn/archives/1119.html

相关文章
相关标签/搜索