什么是Hadoop Yarn

Hadoop YARN:分布式集群资源管理系统详解

1. 什么是YARN?

YARN(Yet Another Resource Negotiator)是 Apache Hadoop 生态系统中的资源管理和作业调度系统,最初在 Hadoop 2.0 中引入,取代了 Hadoop 1.0MapReduce 1(MRv1) 架构。它的核心目标是提高集群资源利用率,并支持多种计算框架(如 MapReduce、Spark、Flink 等)在同一个集群上运行。


2. YARN 的核心作用

YARN 的主要职责是:

  1. 资源管理:统一管理 Hadoop 集群的计算资源(CPU、内存等)。
  2. 任务调度:协调不同应用程序(如 MapReduce、Spark)的资源分配。
  3. 多框架支持:允许不同的计算引擎(如批处理、流处理、机器学习)共享集群资源。

3. YARN 的架构

YARN 采用 主从(Master-Slave)架构,主要由以下三个核心组件组成:

(1) ResourceManager(RM)

  • 集群资源的总调度者,负责全局资源分配。
  • 包含两个子组件:
    • Scheduler(调度器):负责分配资源(不监控任务状态)。
    • ApplicationsManager(应用管理器):负责接收任务提交、启动 ApplicationMaster 等。

(2) NodeManager(NM)

  • 每个工作节点(DataNode)上的代理,负责:
    • 向 ResourceManager 汇报本节点的资源(CPU、内存)。
    • 管理 Container(容器),执行具体的计算任务。

(3) ApplicationMaster(AM)

  • 每个应用程序(如 MapReduce、Spark Job)的专属管理者,负责:
    • 向 ResourceManager 申请资源。
    • 与 NodeManager 协作启动和监控任务(如 Map Task、Reduce Task)。

4. YARN 的工作流程

  1. 客户端提交任务(如 hadoop jar 提交 MapReduce 作业)。
  2. ResourceManager 分配 ApplicationMaster
    • RM 选择一个 NodeManager 启动 AM。
  3. ApplicationMaster 申请资源
    • AM 向 RM 申请 Container(计算资源单元)。
  4. NodeManager 启动任务
    • RM 分配 Container 后,NM 启动具体的 Task(如 Map Task)。
  5. 任务执行与监控
    • AM 监控任务状态,失败时申请新资源重试。
  6. 任务完成,释放资源
    • AM 向 RM 注销,释放占用的资源。

5. YARN 的调度器

YARN 支持多种调度策略,常见的有:

调度器特点适用场景
FIFO Scheduler先进先出,简单但资源利用率低测试环境
Capacity Scheduler队列划分,保证资源隔离(Hadoop 默认)多租户集群
Fair Scheduler动态平衡资源,公平共享混合负载(如批处理 + 交互式查询)

6. YARN 的优势

  1. 高资源利用率:多个框架共享集群,避免资源浪费。
  2. 扩展性:支持数千节点的大规模集群。
  3. 灵活性:不仅支持 MapReduce,还能运行 Spark、Flink、Tez 等。
  4. 多租户支持:通过队列管理不同团队/任务优先级。

7. YARN 的局限性

  1. 不适合低延迟任务:默认调度策略对实时计算(如 Storm)支持较弱。
  2. 资源隔离依赖 Container:若任务异常(如内存泄漏),可能影响整个节点。
  3. 小文件处理效率低:Hadoop 生态的通病,需结合其他优化手段。

8. YARN 的应用场景

  • 批处理计算:MapReduce、Hive 查询
  • 交互式分析:Spark SQL、Presto
  • 流处理:Flink、Spark Streaming
  • 机器学习:TensorFlow on YARN、MLlib

9. 总结

YARN 是 Hadoop 2.0+ 的核心资源管理层,它通过解耦资源管理和任务调度,使 Hadoop 从单一的 MapReduce 计算框架演变为支持多种计算模式的通用大数据平台。尽管后续出现更轻量的资源管理工具(如 Kubernetes),YARN 仍是企业级 Hadoop 生态的基石。

学习建议:掌握 YARN 的架构和调度原理,是深入理解 Hadoop、Spark 等大数据技术的关键一步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/85723.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/85723.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目开发中途遇到困难的解决方案

1. 正视困难,避免逃避 开发遇阻时,退缩会带来双重损失:既成为"失败者逃兵",又损害职业信心1。 行动建议: 立即向团队透明化问题(如进度延迟、技术瓶颈),避免问题滚雪球…

Blender硬表面建模篇收集学习建模过程中的Demo

c 齿轮 创建一个圆柱体,选择侧面的所有,然后进行隔断选择,两次挤出面,一次缩放面,通过圆柱面三次插入面缩放挤出得到齿轮中心,选中齿轮的锯齿中间,然后进行相同周长选择行选择齿与齿中间的面&…

Chromium 136 编译指南 macOS篇:获取源代码(四)

1. 引言 在现代软件开发的宏大版图中,源代码的获取往往标志着从理论探索向实践应用的关键转折。对于Chromium 136这样一个拥有超过2500万行代码、涉及数百个第三方库的超大规模开源项目而言,源代码的获取不仅仅是简单的文件下载,更是一个涉及…

OpenCV C++ 边缘检测与图像分割

一、边缘检测 在数字图像处理领域,边缘检测是一项至关重要的基础技术。它如同为图像赋予 “骨架”,帮助计算机快速识别图像中的物体轮廓、形状与结构,广泛应用于目标识别、图像分割、图像配准等多个领域。 1.1 概念 边缘检测的核心目标是找…

线段树(2025年6月14日)

原文 https://www.beiweidoge.top/132.html P1:求最大值1 题目描述 题目描述 小明给了你n个数字,你需要依次输出: 1到n的最大值,1到n/2的最大值,n/21到n的最大值,1到n/4的最大值,n/41到n/2…

渗透实战PortSwigger Labs AngularJS DOM XSS利用详解

本Lab学习到关于AngularJS的 xss 漏洞利用 直接输入回显页面&#xff0c;但是把<>进了 html 编码了 当我们输入{{11}}&#xff0c;没有当作字符处理&#xff0c;而是执行了 {{}} 是多种前端框架&#xff08;如 Vue、Angular、Django 模板等&#xff09;中常见的模板插值语…

Ubuntu 多网卡安全路由配置(SSH 不断线版)

Ubuntu 多网卡路由配置笔记&#xff08;内网 外网同时通&#xff09;&#xff08;SSH断线版&#xff09;文章浏览阅读386次&#xff0c;点赞4次&#xff0c;收藏5次。本文介绍了Ubuntu 如何配置双网卡设备的路由规则&#xff0c;使默认流量走外网&#xff08;192.168.2.0/24&a…

基于昇腾NPU部署llamafactory单机多卡微调Qwen3教程

1. 进入华为云 华为云首页 点击右上角控制台 2.进入ModelArts 点击搜索框->搜索“ModelArts”->选择AI开发平台ModelArts->进入平台后点击开发者空间 3.创建Notebook 3.1在开发者空间中点击Notebook->在西南贵阳一下点击创建Notebook 3.2进入创建Notebook页…

关于XES文件格式诸多问题

1. 格式类型是什么&#xff1f; case:concept:name (案例ID) - 必须是字符串类型concept:name (活动名称) - 字符串类型time:timestamp - 必须是datetime类型 2. 如何修改&#xff1f; data[case:concept:name] data[case:concept:name].astype(str)data[concept:name] data…

数据融合平台有哪些?在数据治理中发挥什么作用?

目录 一、常见的数据融合平台 &#xff08;一&#xff09;传统数据融合平台 &#xff08;二&#xff09;实时数据融合平台 &#xff08;三&#xff09;云数据融合平台 二、数据融合平台在数据治理中的作用 &#xff08;一&#xff09;提升数据质量 &#xff08;二&#…

​​Linux:XFS 文件系统扩容完整指南

​​​问题背景​​ 在扩展 Linux 根目录 / 时,我遇到了一个错误: sudo resize2fs /dev/uos/root resize2fs: 超级块中的幻数有错 尝试打开 /dev/uos/root 时找不到有效的文件系统超级块。 经过排查,发现根本原因是 ​​文件系统类型是 XFS​​,而 resize2fs 仅适用于 e…

网络安全之CTF专题赛RE题解

easyre hap文件改成zip格式然后解压去反编译abc文件即可拿到源码 这里推荐一个网站.abcD 蛮好用的 下载反编译结果&#xff0c;解压后用vscode打开分析。 这里可以看到一些目录结构&#xff0c;我们先看看flag目录 x_2_2.count位1000000的时候就会输出flag那么大概率是一个点…

a padding to disable MSIE and Chrome friendly error page

问题 a padding to disable MSIE and Chrome friendly error page 解决 nginx 代理地址 配错了

71、C# Parallel.ForEach 详解

Parallel.ForEach 是 .NET Framework 4.0 引入的并行编程功能的一部分&#xff0c;位于 System.Threading.Tasks 命名空间中。它允许你对集合中的元素进行并行处理&#xff0c;可以显著提高处理大量数据时的性能。 基本用法 using System; using System.Collections.Generic;…

生产者-消费者模式在不同操作系统上的行为差异

在多线程编程中&#xff0c;生产者-消费者模式是一种常见的设计模式&#xff0c;用于解决线程间的数据同步问题。最近&#xff0c;我在 Linux 和 macOS 上运行同一个生产者-消费者模式的程序时&#xff0c;发现它们表现出不同的行为。本文将介绍这个现象、分析其原因&#xff0…

【JS-4.1-DOM获取元素操作】深入理解DOM操作:高效获取页面元素的方法与实践

在现代Web开发中&#xff0c;DOM&#xff08;文档对象模型&#xff09;操作是前端工程师的必备技能。而DOM操作的第一步&#xff0c;往往是从页面中获取我们需要操作的元素。本文将全面介绍各种获取页面元素的方法&#xff0c;分析它们的性能特点&#xff0c;并提供最佳实践建议…

UE5错误 Linux离线状态下错误 请求失败libcurl错误:6无法解析主机名

UE5错误 Linux离线状态下错误 请求失败libcurl错误&#xff1a;6无法解析主机名 完整描述问题解析解决方法 完整描述 loghttp&#xff1a;warning&#xff1a;ox015cba21400:request failed libcurl error :6 (couldn’t resolve host name ) 问题解析 这是因为在离线状态下…

深度学习实战111-基于神经网络的A股、美股、黄金对冲投资策略(PyTorch LSTM)

文章目录 一、A股与美股对冲互补投资方案1. 现象与逻辑2. 对冲互补投资思路3. 资金分配样例4. 最大化收益的关键二、对冲互补投资思路1. 资金分配原则2. 动态调整机制3. 对冲操作三、投资方案样例1. 初始资金分配(假设总资金10万元)2. 动态调整举例情景一:美股进入牛市,A股…

在线教育平台敏捷开发项目

项目背景 产品名称&#xff1a;LearnFlow&#xff08;在线学习平台&#xff09; 核心目标&#xff1a;6个月内上线MVP&#xff08;最小可行产品&#xff09;&#xff0c;支持课程学习、进度跟踪、测验功能。 团队构成&#xff1a; 产品负责人&#xff08;PO&#xff09;1人 S…

C++面试题(35)-------找出第 n 个丑数(Ugly Number)

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 我们把只包含质因子 2、3 和 5 的数称作丑数&#xff08;Ugly Number&#xff09;。例如 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。 请编写一个函数&#xff0c;找出第 n …