当前位置: 首页 > news >正文

yarn的概述

1.Yarn的定义 2.Yarn的三大组件 3.Yarn的调度策略

1. YARN的定义

YARN(Yet Another Resource Negotiator) 是Hadoop生态系统中的一个资源管理框架,用于管理和调度集群中的计算资源。它允许多个应用程序在同一个集群上高效地运行,同时确保资源的隔离和共享。

  • 核心目标

    • 提高集群资源的利用率。

    • 支持多种计算框架(如MapReduce、Spark、Flink等)。

    • 提供资源隔离和调度机制。

2. YARN的三大组件

YARN主要由以下三大组件构成:

2.1 ResourceManager(RM)
  • 功能

    • 负责全局资源的管理和分配。

    • 接收应用程序的资源请求,并分配资源。

    • 监控NodeManager的状态和资源使用情况。

  • 位置

    • 通常运行在一个独立的节点上,作为集群的主节点。

2.2 NodeManager(NM)
  • 功能

    • 管理单个节点上的资源(如CPU、内存)。

    • 启动和管理容器(Container),容器是资源分配的最小单位。

    • 监控容器的资源使用情况,并向ResourceManager汇报。

  • 位置

    • 每个计算节点上运行一个NodeManager。

2.3 ApplicationMaster(AM)
  • 功能

    • 每个应用程序运行时都会启动一个ApplicationMaster。

    • 负责与ResourceManager协商资源,并请求NodeManager启动容器。

    • 管理应用程序的生命周期,包括任务的启动、监控和失败处理。

  • 位置

    • ApplicationMaster运行在某个NodeManager节点上,由ResourceManager分配。

3. YARN的调度策略

YARN提供了多种调度策略,用于管理资源分配和任务调度。以下是常见的调度器:

3.1 FIFO调度器(First-In-First-Out Scheduler)
  • 特点

    • 最简单的调度策略。

    • 按照应用程序提交的顺序依次分配资源。

    • 适用于单租户环境,但在多租户环境中可能导致资源饥饿问题。

3.2 容量调度器(Capacity Scheduler)
  • 特点

    • 支持多租户环境。

    • 将集群资源划分为多个队列(Queue),每个队列可以分配一定比例的资源。

    • 支持队列之间的资源共享和弹性扩展。

    • 适用于生产环境,能够保证不同用户或应用程序的资源需求。

  • 配置示例

    xml

    复制

    <property><name>yarn.scheduler.capacity.root.queues</name><value>default,queue1,queue2</value>
    </property>
    <property><name>yarn.scheduler.capacity.root.default.capacity</name><value>50</value>
    </property>
    <property><name>yarn.scheduler.capacity.root.queue1.capacity</name><value>30</value>
    </property>
    <property><name>yarn.scheduler.capacity.root.queue2.capacity</name><value>20</value>
    </property>
3.3 公平调度器(Fair Scheduler)
  • 特点

    • 动态分配资源,确保所有运行的应用程序都能获得公平的资源份额。

    • 支持资源池(Pool)的概念,可以为不同用户或应用程序分配资源池。

    • 适用于多租户环境,能够避免资源饥饿问题。

  • 配置示例

    xml

    复制

    <property><name>yarn.scheduler.fair.allocation.file</name><value>/path/to/fair-scheduler.xml</value>
    </property>

    fair-scheduler.xml中配置资源池:

    xml

    复制

    <allocations><pool name="default"><minResources>1024 mb, 1 vcores</minResources><maxResources>4096 mb, 4 vcores</maxResources></pool><pool name="pool1"><minResources>2048 mb, 2 vcores</minResources><maxResources>8192 mb, 8 vcores</maxResources></pool>
    </allocations>

总结

  • YARN 是一个资源管理框架,用于管理和调度集群中的计算资源。

  • 三大组件

    • ResourceManager:全局资源管理。

    • NodeManager:节点资源管理。

    • ApplicationMaster:应用程序管理。

  • 调度策略

    • FIFO调度器:简单,适合单租户。

    • 容量调度器:支持多租户,资源划分。

    • 公平调度器:动态分配资源,适合多租户。

相关文章:

  • B站pwn教程笔记-7
  • RabbitMQ如何保证消息不丢失?
  • RabbitMQ中Exchange交换器的类型
  • 博图--硬件输入中断程序示例
  • 【CUDA C实战演练】CUDA介绍、安装、C代码示例
  • 从 “机器人 +“ 到 “+ 机器人“:算力政策撬动的产业生态革命
  • Android 蓝牙开发调试总结
  • 基于flask+pandas+csv的报表实现
  • 深入探讨 UDP 协议与多线程 HTTP 服务器
  • 8.12 GitHub Sentinel企业级进化:容器化优化×AI监控,效率提升300%实战
  • hadoop的序列化
  • LLaMA-Omni 2:基于 LLM 的自回归流语音合成实时口语聊天机器人
  • vue2开发者sass预处理注意
  • 全局网络:重构数字时代的连接范式
  • JDK Version Manager (JVMS)
  • matlab App自动化安装和卸载
  • 集群免密登录
  • 机器学习之嵌入(Embeddings):从理论到实践
  • Compose Multiplatform iOS 稳定版发布:可用于生产环境,并支持 hotload
  • SRAM详解
  • 经济日报金观平:充分发挥超大规模市场优势
  • 贵州省总工会正厅级副主席梁伟被查,曾任贵州省纪委副书记
  • 西安机场回应航站楼“水帘洞”事件:屋面排水系统被冰雹堵塞
  • 视频丨习近平同普京在主观礼台出席红场阅兵式
  • 上海交大:关注到对教师邵某的网络举报,已成立专班开展调查
  • 印度杰纳布河上游两座水电站均已重新开闸