---
title: OmniRuntime OmniScheduler Yarn负载调度
description: "Yarn（Yet Another Resource Negotiator）是Hadoop生态系统中的一个资源管理和调度框架，提供了多种调度算法，包括FIFO Scheduler（先进先出调度器）、Capacity Scheduler（容量调度器）、Fair Scheduler（公平调度器）等调度算法，OmniScheduler Yarn负载调度算法优化开源版本的Capacity Scheduler调度器，通过给定参数基于集群节点物理资源权重计算及排序结果进行资源调度，实现资源的均衡配置和高效利用。OmniScheduler Yarn负载调度算法整体架构如图1所示。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengbds/twp/kunpengbds_19_0041.html
sourcePath: /source/zh/kunpengbds/twp/kunpengbds_19_0041.html
indexId: b36959478b523deb42d4deeac159a9d7f3b9ade3bb47c2fdd8677abb732c663649
---
# OmniRuntime OmniScheduler Yarn负载调度

Yarn（Yet Another Resource Negotiator）是Hadoop生态系统中的一个资源管理和调度框架，提供了多种调度算法，包括FIFO Scheduler（先进先出调度器）、Capacity Scheduler（容量调度器）、Fair Scheduler（公平调度器）等调度算法，OmniScheduler Yarn负载调度算法优化开源版本的Capacity Scheduler调度器，通过给定参数基于集群节点物理资源权重计算及排序结果进行资源调度，实现资源的均衡配置和高效利用。OmniScheduler Yarn负载调度算法整体架构如图1所示。

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

包含五大模块：

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

#### OmniScheduler Yarn负载调度算法性能数据

在集群CPU平均负载较低的情况下，开源版本容易因调度不均衡，导致节点间的负载差异较大，均衡性表现较差，开启特性后，节点间负载相对均衡，此时均衡性效果提升明显。

开源版本场景下随着集群CPU平均负载提升，集群空闲资源变小，节点间的负载差异会变小，使用特性后均衡性会得到改善，所以均衡性效果提升会变低。

图2 集群CPU均衡性效果提升
