历史学习笔记
继续学习Hadoop中另一个核心组件YARN,这个组件对Hadoop的发展起到了至关重要的作用。
YARN介绍
YARN简介

YARN (Yet Another Resource Negotiator,另一种资源协调者),Hadoop2中新增加的一种资源管理器。
YARN是一种通用资源管理系统和调度平台,可以为上层应用提供统一的资源管理和调度。
YARN的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大的好处。
hadoop1.0中的资源调度管理由MapReduce来负责,为了降低MR的工作复杂度,在2.0中新增了YARN组件,来专门负责资源的调度和管理。
YARN是一种通用资源管理系统和调度平台这是YARN的核心功能。
YARN功能
资源管理系统:集群的硬件资源,和程序运行相关,目前只负责内存和CPU的管理。
调度平台:多个程序同时申请计算资源如何分配,调度的规则(算法)。
通用:不仅仅支持MR程序,理论上支持各种计算程序。YARN不关心你干什么,只关心资源。有资源的情况下分配给你使用,用完之后还给我。

YARN概述
Hadoop YARN可以理解成为一个分布式的操作系统平台,而Map Reduce等计算程序则相当于运行在这个操作系统上的程序,YARN为这些程序提供运算所需的资源(CPU,内存)。
Hadoop在大数据领域有如今的地位,YARN起到了非常关键的作用。有了YARN,更多的计算框架可以接入到HDFS中,而不是单单只是Map Reduce。正因为YARN的包容性,使得其他计算框架能专注于计算性能的提升。虽然目前MR已经退居二线,Spark大行其道,也正是因为YARN的通用行
HDFS可能不是最优秀的大数据存储系统,但却是应用最广泛的大数据存储系统,这里YARN功不可没。
YARN架构和组件
YARN官方架构图

YARN 3大组件
ResourceManager(RM)
NodeManager(NM)
ApplicationMaster(App Mstr)

集群物理层面组件:
ResourceManager(RM)
YARN集群中的主角色,决定系统中所有应用程序之间资源分配的最终权限,即最终仲裁者。
接收用户的作业提交,并通过NM分配、管理各个机器上的计算资源。
集群中的真正的“老大”,负责下命令。
NodeManager(NM)
YARN中的从角色,一台机器上一个,负责管理本机器上的计算资源。
根据RM命令,启动Container容器,监视容器的资源使用情况,并且向RM主角色汇报资源使用情况。
具体干活的“小弟”并且向“老大”汇报

APP层面组件:
ApplicationMaster(App Mstr)
用户提交的每个应用程序都会包含一个AM
应用程序内的“老大”,负责程序内部各阶段的资源申请,监督程序的执行情况。先启动AM再启动具体的计算程序。
Container容器(资源的抽象),作用是资源上的隔离。
预告
下一期将重点学习程序与YARN的交互流程,这部分相对比较复杂,因此单独用一期来学习。




