---
title: 架构介绍
description: "Yarn（Yet Another Resource Negotiator）是Hadoop生态系统中的一个资源管理和调度框架。它负责集群中资源的分配和任务的调度，使得多个计算框架（如MapReduce、Spark、Tez等）可以共享同一个集群资源。Yarn通过ResourceManager（RM）、NodeManager（NM）和ApplicationMaster（AM）三个主要组件来实现资源管理和任务调度。Yarn提供了多种调度算法，包括FIFO Scheduler（先进先出调度器）、Capacity Scheduler（容量调度器）、Fair Scheduler（公平调度器）等调度算法，用户可以根据具体需求选择合适的调度器。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/250RC1/bds/kunpengbds_omniruntime_20_0803.html
sourcePath: /source/zh/kunpengboostkithistory/250RC1/bds/kunpengbds_omniruntime_20_0803.html
indexId: fe13da0bda189f9eee1f5f1e1dcc331c6999281ebb138a0fe84b6db9a945214e80
---
# 架构介绍

Yarn（Yet Another Resource Negotiator）是Hadoop生态系统中的一个资源管理和调度框架。它负责集群中资源的分配和任务的调度，使得多个计算框架（如MapReduce、Spark、Tez等）可以共享同一个集群资源。Yarn通过ResourceManager（RM）、NodeManager（NM）和ApplicationMaster（AM）三个主要组件来实现资源管理和任务调度。Yarn提供了多种调度算法，包括FIFO Scheduler（先进先出调度器）、Capacity Scheduler（容量调度器）、Fair Scheduler（公平调度器）等调度算法，用户可以根据具体需求选择合适的调度器。

OmniSchedulerYarn负载调度算法优化开源版本Capacity Scheduler调度器，基于集群节点物理资源权重计算及排序结果进行资源调度，实现资源的均衡配置和高效利用。OmniSchedulerYarn负载调度算法整体架构如图1所示。

图1 OmniScheduler Yarn负载调度算法整体架构

包含五大模块：

- Prometheus：一个开源的监控系统和时间序列数据库，广泛用于监控各种服务和基础设施。
- Node Exporter：Prometheus生态系统中的一个组件，用于收集和暴露机器级别的指标（metrics），包括但不限于CPU使用率、内存使用情况、磁盘I/O、网络I/O和文件系统信息等。
- LoadsMetricApplication：负载采集与分析工具，负责从Node Exporter中获取机器指标信息，进行分析处理后，将集群负载信息与均衡性数据上报给Prometheus进行存储。
- Grafana：从Prometheus获取负载信息和均衡性数据，并将其可视化为图表和仪表板，进行前端UI展示。
- Yarn负载调度算法：从LoadsMetric中获取节点负载排序信息，并按照顺序优先调度低负载节点。
