定义
∙ Yet Another Resource Negotiator —— 另一种资源协调者
∙ 通用的资源管理模块,为各类应用程序进行资源管理和调度
产生背景
MapReduce本身存在一些问题:
∙ JobTracker单点故障问题 —— 如果Hadoop集群的JobTracker挂掉,则整个分布式集群都不能使用了。
∙ JobTracker承受的访问压力大,影响系统的扩展性。
∙ 不支持MapReduce之外的计算框架,比如Storm、Spark、Flink等。
MapReduce简介
MapReduce的思想就是“分而治之”,将复杂的任务分解成若干个简单的任务来处理。
Yarn核心思想
将JobTracker的资源管理和作业调度两个功能分开,分别由ResourceManager和ApplicationMaster进程来实现。
Yarn框架图
Yarn框架
∙ ResourceManager —— 负责集群资源统一管理和计算框架管理,主要包括调度与应用程序管理。RM是系统中将资源分配给每个应用的最终决策者。
∙ NodeManager —— 节点资源管理监控和容器管理。
∙ ApplicationMaster —— 各种计算框架的实现。向RM申请资源,通知NM管理相应资源。
∙ Container —— 资源的一种抽象方式,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。当AM向RM申请资源时,RM为AM返回的资源便是Container。
工作原理
1、作业提交;
2、作业初始化;
3、任务分配;
4、任务运行;
5、进度及状态更新;
6、作业完成。