YARN 的介绍
- 一、YARN 产生背景
- 1.1 MapReduce 1.0 系统架构
- 1.2 MapReduce 1.0架构缺陷
- 二、YARN 是什么
- 三、YARN 作用
- 四、YARN 架构
- 五、工作原理
- 六、MapReduce ON YARN 工作流程
- 七、YARN 的容错性
- 八、YARN 的高可用
- 八、YARN 调度器
- 8.1 先进先出调度器
- 8.2 容量调度器
- 8.3 公平调度器
一、YARN 产生背景
1.1 MapReduce 1.0 系统架构
1.2 MapReduce 1.0架构缺陷
- 扩展性差
- JobTracker 同时兼备了资源管理和作业控制两个功能,严重制约了 Hadoop 集群扩展性
- 资源利用率低
- MRv1采用基于slot的粗粒度的资源分配模型,包含Map slot和Reduce slot。某个任务用不完的资源其他任务也不能用,因为map和reduce的资源完全不能共享的。当一个作业刚提交时,只会运行Map Task,此时Reduce Slot 闲置。
- 通用性差
- 随着互联网高速发展导致数据量剧增,MapReduce这种基于磁盘的离线计算框架已经不能满足应用要求,从而出现了一些新的计算框架以应对各种场景,包括内存计算框架、流式计算框架和迭代式计算框架等,而MRv1不能支持多种计算框架并存。
- 单点故障
- MRv1 采用了master/slave 结构,其中 master 存在单点故障问题,一旦它出现故障将导致整个集群不可用
二、YARN 是什么
-
YARN 是Hadoop2.0版本新引入的资源管理系统,接从MR1演化而来。
-
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
-
核心思想:将MR1中JobTracker的资源管理和作业调度两个功能分开,分别ResourceManager和ApplicationMaster进程来实现。
-
ResourceManager负责整个集群的资源管理和调度。ApplicationMaster负责应用程序相关的事务,比如任务调度、任务监控和容错等
三、YARN 作用
四、YARN 架构
五、工作原理
六、MapReduce ON YARN 工作流程
七、YARN 的容错性
- ResourceManager的容错性保障ResourceManager存在单点故障,但是可以通过配置实现ResourceManager的HA(高可用),当主节点出现故障时,可以切换到备用节点继续对外提供服务。
- NodeManager的容错性保障NodeManager失败之后,ResourceManager会将失败的任务通知对应的ApplicationMaster,由ApplicationMaster来决定如何去处理失败的任务。
- ApplicationMaster的容错性保障ApplicationMaster失败后,由ResourceManager负责重启即可。其中,ApplicationMaster需要处理内部任务的容错问题。ResourceManager会保存已经运行的任务,重启后无须重新运行。