hadoop_yarn详解

YARN秒懂

YARN定义

YARN(Yet Another Resource Negotiator)是Hadoop的一个框架,它负责在Hadoop集群中调度工作,管理资源,并为用户提供运行各种类型的应用程序的环境

基础架构

ResourceManager

  1. 处理客户端请求
  2. 监控NodeManager
  3. 启动或监控ApplicationMater
  4. 资源的分配与调度

NodeManager

  1. 管理单个节点上的资源
  2. 处理来自ResourceManager的命令
  3. 处理来自ApplicationMaster的命令

ApplicationMaster

  1. 为应用程序申请资源并分配给内部的任务
  2. 任务的监控与容错

Container

  1. container是YARN中的资源抽象,封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等

工作流程

  1. 作业提交1-3

  2. 作业初始化4-7

  3. 任务分配8-9

  4. 任务运行10-13

  5. 进度和状态更新

    复制代码
     YARN中的任务将其进度和状态返回给应用管理器, 客户端每秒向应用管理器请求进度更新, 展示给用户
  6. 作业完成

    复制代码
     客户端除了向应用管理器请求作业进度外, 每5分钟会来检查作业是否完成
     作业完成之后, 应用管理器和Container会清理工作状态。作业的信息会被作业历史服务器存储以备之后用户核查

资源调度器

FIFO Scheduler

First In First Out,单队列,根据作业的提交顺序执行任务

Capacity Scheduler

容量调度器,Apache hadoop3.2.3默认调度器,是Yahoo开发的多用户调度器

容量调度器特点

  1. 多队列:每个队列可配置一定的资源量,每个队列采用FIFO调度策略
  2. 容量保证:管理员可为每个队列设置最低资源保证和资源使用上限
  3. 灵活性:如果一个队列中资源有剩余,可以暂时共享给那些需要资源的队列,而一旦该队列有新的任务提交,则其他队列借调的资源会归还给该队列
  4. 多租户:支持多用户共享集群和多应用程序同时进行,为防止同一个用户的作业独占资源,调度器会对同一个用户提交的作业所占资源进行限定

容量调度器资源分配算法

  • 队列资源分配

    复制代码
      从root用户开始,使用深度优先算法,优先选择资源占用率最低的队列分配资源
  • 作业资源分配

    复制代码
      默认按照提交作业的优先级和提交时间顺序分配资源
  • 容器资源分配

    复制代码
      按照容器的优先级分配资源;
      如果优先级相同,按照数据本地原则:(同HDFS机架感知策略)
      	1)任务和数据在同一节点
      	2)任务和数据在同一机架
      	3)任务和数据不在同一节点也不在同一机架

Fair Scheduler

公平调度器是Facebook开发的多用户调度器

公平调度器的特点

同队列所有任务共享资源,在时间尺度上获得公平的资源

与容量调度器的相同点

  1. 多队列:支持多队列作业,
  2. 容量保证:管理员可为每个队列设置最低资源保证和资源使用上限
  3. 灵活性:有剩余的资源可以暂时共享给那些需要资源的队列
  4. 多租户:支持多用户共享集群和多应用程序同时进行

与容量调度器的不同点

  • 核心调度策略不同

    复制代码
      容量调度器:优先选择资源利用率低的队列
      公平调度器:优先选择对资源缺额比例大的
  • 每个队列可以单独设置资源分配方式

    复制代码
      容量调度器:FIFO、DRF
      公平调度器:FIFO、FAIR、DRF

缺额

公平调度器的设计目标是:在时间尺度上,所有作业获得公平的资源。某一时刻一个作业应获资源和实际获取资源的差距叫"缺额"

公平调度器列队资源分配方式

  • FIFO策略

    复制代码
      公平调度器每个队列资源分配策略为FIFO时,此时公平调度器相当于容量调度器
  • FAIR策略

    复制代码
      Fair策略(默认)是一种基本最大最小公平算法实现的资源多路复用方式,默认情况下,每个队列内部采用该方式分配资源,无论有几个应用程序,平均分配当前的资源
      资源分配流程和容量调度器一致:
      	1)选择队列
      	2)选择作业
      	3)选择容器
      	每一步都按照公平策略分配资源
      	
      公平策略
      	
      	实际最小份额: mindshare = Min(资源需求量,配置的最小资源)
      	是否饥饿:    isNeedy = 资源使用量 < mindshare(实际最小份额)
      	资源分配比:   minShareRatio = 资源使用量 / Max(mindshare, 1)
      	资源使用权重比:useToWeigthRatio = 资源使用量 / 权重
  • DRF策略

    复制代码
      DRF(Dominant Resource Fairness),之前说的资源都是单一标准,比如只考虑内存(Yarn默认),但很多时候我们资源有很多种,
      例如内存、CPU等,DRF策略是对不同应用进行不同资源(内存和CPU)的合理比例分配

常用命令

8088端口查看的信息

  • 查看任务列表
bash 复制代码
yarn application -list
  • 查看任务状态
bash 复制代码
yarn application -status <applicationid>
  • 根据任务状态查询列表
bash 复制代码
yarn application -list -appStates <status>

<status>如下
  • 查看任务log
bash 复制代码
yarn logs -applicationId <applicationid>
  • 查看节点状态
bash 复制代码
yarn node -list -all
  • 查看队列状态
bash 复制代码
yarn queue -status default
相关推荐
新芒6 分钟前
暖通行业两位数下滑,未来靠什么赢?
大数据·人工智能
忆~遂愿32 分钟前
CANN ATVOSS 算子库深度解析:基于 Ascend C 模板的 Vector 算子子程序化建模与融合优化机制
大数据·人工智能
艾莉丝努力练剑2 小时前
【Linux:文件】Ext系列文件系统(初阶)
大数据·linux·运维·服务器·c++·人工智能·算法
lili-felicity2 小时前
CANN异步推理实战:从Stream管理到流水线优化
大数据·人工智能
2501_933670793 小时前
2026 高职大数据专业考什么证书对就业有帮助?
大数据
xiaobaibai1533 小时前
营销自动化终极形态:AdAgent 自主闭环工作流全解析
大数据·人工智能·自动化
星辰_mya3 小时前
Elasticsearch更新了分词器之后
大数据·elasticsearch·搜索引擎
xiaobaibai1533 小时前
决策引擎深度拆解:AdAgent 用 CoT+RL 实现营销自主化决策
大数据·人工智能
悟纤4 小时前
学习与专注音乐流派 (Study & Focus Music):AI 音乐创作终极指南 | Suno高级篇 | 第33篇
大数据·人工智能·深度学习·学习·suno·suno api
ESBK20254 小时前
第四届移动互联网、云计算与信息安全国际会议(MICCIS 2026)二轮征稿启动,诚邀全球学者共赴学术盛宴
大数据·网络·物联网·网络安全·云计算·密码学·信息与通信