这是我参与「第四届青训营 」笔记创作活动的第12天,简单整理了Yarn相关的一些定义以及资料。
走进 Yarn 资源管理和调度
基本定义与概述
Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry.
关键意思就是,快速,安全,可靠。你下载的包将不再重新下载。而且确保在不同系统中可以正常工作。
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
ARN的基本思想是将JobTracker的两个主要功能(资源管理和作业调度/监控)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。这里的应用程序是指传统的MapReduce作业或作业的DAG(有向无环图)。
面临的挑战
- 公平性:租户能够公平的拿到资源运行服务
- 高性能:高调度吞吐、低调度延迟,保障资源快速流转
- 高可用:集群要具备很强的容错能力
- 大规模:单集群规模提升
- 高级群资源利用率
- 高任务运行质量保障
核心模块
Resource Manager
- 整体架构
- 主要职责
- 状态机管理
- 调度器分析
主要职责
- 与客户端交互
- 启动和管理所有AM
- 管理所有NM
- 资源管理与调度
- 组织资源
- 组织任务
- 接收资源请求
- 分配资源
Node Manager
- 整体架构
- 主要职责
- 状态机管理
- 节点健康检测机制
节点健康监测是 Node Manager 自带的健康状态诊断机制。通过该机制,Node Manager 可以时刻掌握自己的健康状况,并及时汇报给 Resource Manager,Resource Manager 根据节点的健康状况调整分配的任务数目。如果任何健康监测失败,Node Manager 会将该节点标记处于不健康状态,并将其传达给 Resource Manager,后者会停止将新任务分配给该节点,直到节点标记为健康状态。