YARN产生背景
运维成本
如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群,进而增加运维成本,而共享模
式通常需要少数管理员即可完成多个框架的统一管理。
数据共享
随着数据量的暴增,跨集群间的数据移动不仅需花费更长的时间,且硬件成本也会大大增加,而共享集群模式可让多种框架共享数据和硬件资源,将大大减少数据移动带来的成本。
计算资源共享
离线批处理任务主要集中在凌晨执行,资源使用有明显的波峰波谷
交互式数据分析,资源使用主要集中在工作日的上班时段
实时流计算、图计算、数据模型训练等各种类型的计算任务需要不同的CPU、内存等计算资源
YARN主要功能
1、集群资源管理系统
2、负责集群的统一管理和调度
3、与客户端交互,处理客户
YARN基本结构
YARN核心组件
ResourceManager
- 整个集群只有一个Master
- 处理客户端请求
- 启动/监控ApplicationMaster
- 监控NodeManager
- 资源分配和调度
NodeManager
- 集群中存在多个,每个节点一个,和Datanode部署在同一机器中
- 单个节点上的资源监控和管理
- 定时向ResourceManager汇报本机的资源使用情况
- 处理来自ResourceManager的请求,为作业的执行分配Container
- 处理来自ApplicationMaster的请求,启动和停止Container
ApplicationMaster
- 每个应用程序只有一个,负责应用程序的管理,资源申请和任务调度。
- 与ResourceManager协商为应用程序申请资源
- 与NodeManager通信启动/停止任务
- 监控任务运行状态和失败处理
Container
- 任务运行环境的抽象,只有在分配任务的时候才会抽象出一个Container。
- 描述一系列信息
- 任务运行资源(节点、内存、 CPU)
- 任务启动命令
- 任务运行环境
YARN容错性
ResourceManager
基于Zookeeper实现高可用
NodeManager(简称NM)
NM故障将导致运行在该节点的任务失败,任务失败后, RM将失败任务通知对应的AM
AM决定如何处理失败的任务
ApplicationMaster(简称AM)
AM失败后,由RM负责重启
AM会保存已经运行完成的Task,重启后无需重新运行
未完待续。。。