12.5 大数据集群资源管理系统 Yarn
1.YARN:Yet Another Resource Negotiator
下一代MapReduce框架的名称。
不再是一个传统的MapReduce框架,甚至与MapReduce无关。
一个通用的运行时框架,用户可以编写自己的计算框架,在该运行环境中运行。
解析:
1.资源管理器:集群中唯一角色。管理集群中所有计算资源。
2.节点管理器:集群中每台服务器上都部署有节点管理器。节点管理器管理本地计算资源。
资源单位叫容器(逻辑容器,非物理容器)
节点管理器将CPU核心, 内存,打包成容器资源进行调度。
节点管理器检查CPU核心,内存,决定启动多少个容器。
3.容器:JVM进程。
4.架构相似性:一主多从:大数据架构特色
HDFS(Name Node+DataNode),
MapReduce1(JobTracker+TaskTracker),
Yarn(资源管理器+节点管理器)
2.启动过程:应用程序申请大数据计算
1.应用程序从资源管理器申请资源:
2.资源管理器从节点管理器寻找空闲容器分配给应用程序。
3.应用程序和容器通信
4.容器启动进程:应用的主程序ApplicationMaster
5.ApplicationMaster向资源管理器通信,决定需要多少个容器资源
6.资源管理器分配多个容器
7.ApplicationMaster向容器启动多个计算任务
3.MapReduce在Yarn架构下启动过程
1.基于Yarn编写MapReduce程序。
2.应用程序和资源管理器通信,声明要启动大数据计算任务。
3.资源管理器向节点管理器通信,节点管理器寻找本地空闲容器给应用程序。
4.应用程序在空闲容器中启动ApplicationMaster
5.ApplicationMaster主要角色职责:MapReduce1的JobTracker(除资源管理外)--JobInProcess(JIP树--TaskInProcess-TaskAttempt)。
JIP树构建好后,就直到需要多少个计算资源(需要启动多少个Task--多少个容器)。
6.ApplicationMaster向资源管理器申请所需的容器,比如:需要50个容器(30个Map,20个Reduce)。
7.资源管理器检查节点管理器汇报过来的空闲容器资源,分配给ApplicationMaster.
8.ApplicationMaster给容器分配任务。
MapReduce2 :资源管理代码剥离出去,交给Yarn去做。MapReduce2本身专注计算过程的代码。
评论