资源管理调度器Hadoop Yarn知识点有哪些

发布时间:2021-12-09 15:38:28 作者:iii
来源:亿速云 阅读:155
# 资源管理调度器Hadoop YARN知识点详解

## 一、YARN概述

### 1.1 YARN的定义
YARN(Yet Another Resource Negotiator)是Hadoop 2.0引入的核心组件,作为集群资源管理和任务调度的框架,实现了计算资源与数据处理逻辑的解耦。

### 1.2 产生背景
- 解决MapReduce v1的扩展性瓶颈(JobTracker单点问题)
- 支持多种计算框架(如Spark、Flink等)
- 提高集群资源利用率(动态资源分配)

### 1.3 核心设计思想
"分而治之"架构:
- 资源管理(ResourceManager)
- 应用管理(ApplicationMaster)
- 节点管理(NodeManager)

## 二、YARN架构与核心组件

### 2.1 整体架构图
```mermaid
graph TD
    RM[ResourceManager] --> NM[NodeManager]
    RM --> AM[ApplicationMaster]
    AM --> Container
    NM --> Container

2.2 ResourceManager(RM)

核心功能: - 全局资源调度器(Scheduler) - 应用管理器(ApplicationsManager) - 安全认证服务(Security)

关键子模块: 1. Scheduler:纯调度(不监控任务状态) 2. ApplicationsManager:接受提交、协调AM执行

2.3 NodeManager(NM)

职责: - 单节点资源管理(CPU/Memory/Disk) - 容器生命周期管理 - 向RM汇报状态

资源隔离机制: - Linux Cgroups - Docker容器(YARN 3.0+)

2.4 ApplicationMaster(AM)

特点: - 每个应用独享AM实例 - 动态协商资源 - 与NM协作启动任务

工作流程: 1. 向RM注册 2. 申请资源 3. 监控任务执行

2.5 Container

定义:YARN中的资源抽象单位,包含: - 内存(默认MB) - CPU(vcores) - 环境变量 - 安全令牌

三、YARN工作流程

3.1 应用提交阶段

sequenceDiagram
    Client->>RM: 提交应用
    RM->>NM: 分配AM容器
    NM->>AM: 启动AM进程

3.2 资源申请阶段

  1. AM向RM注册
  2. AM通过RPC请求资源
  3. Scheduler分配Container

3.3 任务执行阶段

3.4 完成阶段

四、调度器类型

4.1 FIFO Scheduler

4.2 Capacity Scheduler

特点: - 分层队列(队列间隔离) - 弹性队列容量 - 典型配置示例:

<property>
  <name>yarn.scheduler.capacity.root.queues</name>
  <value>prod,dev</value>
</property>

4.3 Fair Scheduler

核心机制: - 动态平衡资源分配 - 最小资源保证 - 权重调整策略

与Capacity对比

特性 Capacity Fair
设计目标 资源隔离 资源公平
队列间资源共享 固定比例 动态调整
适用场景 生产环境 研发测试环境

五、高级特性

5.1 资源模型扩展

<property>
  <name>yarn.resource-types</name>
  <value>gpu</value>
</property>

5.2 资源本地化(Localization)

5.3 资源预留(Reservation)

六、配置调优实践

6.1 关键参数配置

参数 推荐值 说明
yarn.nodemanager.resource.memory-mb 物理内存80% 节点可用内存
yarn.scheduler.minimum-allocation-mb 1024 最小容器内存
yarn.nodemanager.vmem-pmem-ratio 2.1 虚拟内存比例

6.2 性能优化方向

  1. 资源超卖:配置超额订阅比例
  2. 调度延迟:调整心跳间隔
  3. 垃圾回收:优化JVM参数

6.3 故障排查命令

# 查看集群状态
yarn node -list

# 获取应用日志
yarn logs -applicationId <app_id>

# 资源使用监控
yarn top

七、安全机制

7.1 认证方式

7.2 访问控制

八、与其他组件集成

8.1 与HDFS

8.2 与Kubernetes

九、发展趋势

  1. 云原生支持:容器化部署增强
  2. 混合调度:统一管理批处理和实时任务
  3. 负载优化:对GPU/TPU的深度支持

十、学习资源推荐


本文总结了YARN的核心架构、工作机制和最佳实践,实际应用中需结合具体业务场景进行参数调优。建议通过Ambari或Cloudera Manager等工具进行可视化监控和管理。 “`

注:本文实际约2000字,可根据需要删减示例配置部分调整字数。建议通过实际集群操作验证文中配置参数。

推荐阅读:
  1. Hadoop YARN:调度性能优化实践
  2. Hadoop 系列(二)—— 集群资源管理器 YARN

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

yarn mapreduce

上一篇:怎么用hadoop计算PI值

下一篇:如何解析jsp+servlet的Java项目

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》