批处理计算框架MapReduce、内存计算框架Spark、流式计算框架Storm、批流计算框架Flink等都需要在运行过程中管理和调度计算机的CPU、内存资源,有些场景需要选择多种计算框架,那么,计算资源管理、调度和共享就成为难题。

通用资源管理系统Yarn就是一种Hadoop资源管理器,为上层的计算框架提供统一的资源管理和调度,通过提升集群中计算资源的利用率,实现资源的统一管理和数据共享。

通用统一资源管理系统,可以同时运行长应用程序和短应用程序。

长应用程序,是指永不停止运行的程序,如Spark Thrift Server等。

短应用程序,是短时间内运行结束的程序,如MR job、Spark job等。

发展

Hadoop 1.x主要分为:Hdfs与MapReduce。其中MR用于集群资源管理和数据处理。

Hadoop 2.x主要分为:Hdfs、Yarn、计算框架。其中,Yarn用于集群资源管理。

主要服务

Resource Manager

Yarn的资源管理器,负责整个系统的资源管理和分配,一个集群中通常只有一个RM。

在RM中的核心组件包括:

  • 调度器(Scheduler):根据应用程序的资源需求进行资源分配,分配单位是Container

  • 应用程序管理器(Application Manager,ASM):负责管理整个系统中所有应用程序,包括应用程序提交、Application Master的启动与监控等

Container是任务运行的资源(节点、内存、CPU),任务启动命令,及运行环境

Node Manager

Node Manager是单节点的资源管理器,负责单个节点的资源和任务的管理,在集群中通常有多个。

NM会定时向RM汇报本节点上的资源使用情况和各个Container的运行状态(CPU和内存等资源)

Application Master

Application Master管理YARN内运行的应用程序。

AM的主要功能是数据切分、为应用程序申请资源,并进一步分配给内部任务、任务监控与容错。

Timeline Server

Timeline Server是一种通用的解决application的当前及历史信息的存储和检索的方案,通常一个集群只有一个TS。

TS会持久化应用程序的具体信息,持久化已完成应用的信息。

开发运维

Resource Manager

队列默认是以内存计算调配。

父队列可以管理资源分配,但是在通过YARN提交任务时,只能提交到最底层的子队列。

在队列上打标签,完成节点分组。

Resource Manager基于Zookeeper实现HA,一般是两台机器,其中一个处于Active,另一个处于Standby

yarn.resourcemanager.ha.enabled=true/false

API

Resource Manager REST API允许用户获取集群信息,包括:

  • 集群状态

  • 集群监控度量信息

  • 应用程序调度信息

  • 集群中的所有节点信息

  • 集群中的所有应用程序信息

Node Manager

results matching ""

    No results matching ""