架构介绍
Yarn(Yet Another Resource Negotiator)是Hadoop生态系统中的一个资源管理和调度框架。它负责集群中资源的分配和任务的调度,使得多个计算框架(如MapReduce、Spark、Tez等)可以共享同一个集群资源。Yarn通过ResourceManager(RM)、NodeManager(NM)和ApplicationMaster(AM)三个主要组件来实现资源管理和任务调度。Yarn提供了多种调度算法,包括FIFO Scheduler(先进先出调度器)、Capacity Scheduler(容量调度器)、Fair Scheduler(公平调度器)等调度算法,用户可以根据具体需求选择合适的调度器。
OmniScheduler Yarn负载调度算法优化开源版本Capacity Scheduler调度器,基于集群节点物理资源权重计算及排序结果进行资源调度,实现资源的均衡配置和高效利用。OmniScheduler Yarn负载调度算法整体架构如图1所示。
包含五大模块:
- Prometheus:一个开源的监控系统和时间序列数据库,广泛用于监控各种服务和基础设施。
- Node Exporter:Prometheus生态系统中的一个组件,用于收集和暴露机器级别的指标(metrics),包括但不限于CPU使用率、内存使用情况、磁盘I/O、网络I/O和文件系统信息等。
- LoadsMetricApplication:负载采集与分析工具,负责从Node Exporter中获取机器指标信息,进行分析处理后,将集群负载信息与均衡性数据上报给Prometheus进行存储。
- Grafana:从Prometheus获取负载信息和均衡性数据,并将其可视化为图表和仪表板,进行前端UI展示。
- Yarn负载调度算法:从LoadsMetric中获取节点负载排序信息,并按照顺序优先调度低负载节点。
父主题: 特性介绍