YARN
产生背景
-
MapReduce1.x存在的问题:单点故障&节点压力大、不易扩展
-
资源利用率&运维成本
-
催生了YARN的诞生
-
YARN:不同计算框架可以共享同一个HDFS集群上的数据,享受整体的资源调度
-
xxx on YARN的好处:与其他计算框架共享集群资源,按资源需要分配,进而提高集群资源的利用率
-
xxx :Spark/MapReduce/Storm/Flink
-
YARN概述
yarn架构
-
通用的资源管理系统
-
为上一层应用提供统一的资源管理和调度
-
架构
-
ResourceManager:RM
-
整个集群同一时间提供服务的RM只有一个,负责集群资源的统一管理的调度
-
处理客户端的请求:提交一个作业、杀死一个作业
-
监控我们的NM,一旦某个NM挂了,那么该NM上运行的任务需要告诉我们的AM
-
-
NodeManager:NM
-
整个集群中有多个,负责自己本身节点资源管理和使用
-
定时向RM汇报本节点的资源使用情况
-
接收并处理来自RM的各种命令:启动Container
-
处理来自AM的命令
-
单个节点的资源管理
-
-
ApplicationMaster:AM
-
每一个应用程序对应一个:MR、Spark,负责应用程序的管理
-
为应用程序向RM申请资源(core,memory),分配给内部task
-
需要与NM通信:启动/停止task,task是运行在container里面,AM也运行在container里面
-
-
Container
-
封装了CPU、Memory等资源的一个容器
-
是一个任务运行环境的抽象
-
-
Client
-
提交作业
-
查询作业的运行进度
-
杀死作业
-
-
yarn执行流程