初始Yarn

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执行流程

原文地址:https://www.cnblogs.com/zxbdboke/p/10468151.html