Yarn(全称为Yet Another Resource Negotiator,译为"另一个资源协调者")在Hadoop2.0版本中引入,其诞生是为了解决 Hadoop 1.x 架构中 MapReduce 的资源管理和计算框架耦合 的问题。简而言之,就是之前MapReduce的资源管理和计算框架是耦合在一起的,为了解耦而设计出了Yarn。Yarn是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,提供统一的资源管理和调度,其核心特性有以下几点:资源管理和计算框架完全解耦支持多种计算框架(如MapReduce、Spark、Flink)提升集群资源利用率和扩展性二、Yarn系统架构
图片
ResourceManager(RM):全局资源管理器,主要包含两个部分,资源调度器(Scheduler)和 应用管理器(Applications Manager)资源调度器(Scheduler):不直接参与任务调度,仅根据调度策略(如Capacity Scheduler、Fair Scheduler)分配集群资源(CPU、内存)给应用程序应用管理器(Applications Manager):接受客户端提交的应用程序(如MapReduce、Spark、Flink作业),并且为每个应用分配第一个Container以启动 ApplicationMaster(AM),监控AM的运行状态NodeManager(NM):节点管理器,包含自身节点资源管理和具体任务执行节点资源监控:定期向 RM 汇报本节点的资源使用情况(CPU、内存、磁盘)Container生命周期管理:根据 RM 和 AM 的指令,启动或销毁Container,确保Container正确运行ApplicationMaster(AM):应用程序管理器,包含资源申请和任务调度,注意AM也是运行在Container中的资源申请:向 RM 申请运行任务所需的Container(如 MapTask、Spark Executor)任务调度:拿到Container信息后,直接与对应的NM通信,由NM来启动或停止Container,里面就是运行具体的任务状态汇报:向 RM 汇报应用程序进度和最终状态(成功/失败)Container:资源抽象和任务执行单元(是资源的抽象概念,比如一个Container分配了2个vCore和 4GB内存,用于运行 Reduce Task)资源封装隔离:包含 CPU 核数、内存、网络等资源配额,Container之间互不影响任务执行单位:每个任务(如 MapTask、Spark Executor)运行在一个独立的Container中三、Yarn应用提交流程(以 提交Flink作业 为例)3.1 客户端准备并提交Flink作业


博学的夕阳
1 声望0 粉丝