YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统的核心资源调度框架,负责集群资源管理和任务调度

YARN 概述

YARN(Yet Another Resource Negotiator)是 Hadoop 生态系统的核心资源调度框架,负责集群资源管理和任务调度。它将资源管理与作业调度分离,提高了 Hadoop 的扩展性和灵活性,支持多计算框架(如 MapReduce、Spark、Flink)运行在同一集群上。


YARN 核心组件

ResourceManager (RM)

  • 全局资源管理器,负责集群资源分配与调度。
  • 包含两个子组件:
    • Scheduler:纯调度器,根据策略(如 FIFO、Capacity、Fair)分配资源。
    • ApplicationsManager:管理应用程序的生命周期(提交、启动、监控)。

NodeManager (NM)

  • 每个节点上的代理,负责管理单个节点的资源(CPU、内存)和容器(Container)。
  • 向 RM 汇报资源使用情况,并执行 RM 分配的容器任务。

ApplicationMaster (AM)

  • 每个应用独有的组件,负责向 RM 申请资源,并与 NM 协作执行任务。
  • 框架特定(如 MapReduce 的 MRAppMaster)。

Container

  • 资源抽象单元,封装了节点的 CPU、内存等资源,供任务运行使用。

YARN 工作流程

  1. 应用提交

    • 客户端提交应用至 RM,RM 启动对应的 AM。
  2. 资源申请

    • AM 向 RM 注册,并通过心跳机制动态申请资源(Container)。
  3. 任务分配

    • RM 的 Scheduler 分配资源,AM 与 NM 通信启动 Container 运行任务。
  4. 监控与完成

    • AM 监控任务状态,任务完成后向 RM 注销并释放资源。

YARN 调度器类型

FIFO Scheduler

  • 先进先出队列,简单但资源利用率低,不适合多租户场景。

Capacity Scheduler

  • 分层队列划分,每个队列分配固定资源比例,支持多租户和资源隔离。

Fair Scheduler

  • 动态平衡资源分配,根据需求动态调整队列资源,适合弹性负载。

YARN 配置与优化

关键配置参数

  • yarn.scheduler.minimum-allocation-mb:单个容器最小内存(默认 1024MB)。
  • yarn.scheduler.maximum-allocation-mb:单个容器最大内存(取决于节点资源)。
  • yarn.nodemanager.resource.memory-mb:NM 管理的总可用内存。

优化建议

  • 避免过量分配内存,防止频繁的 OOM 导致任务失败。
  • 根据负载选择合适的调度器(如生产环境常用 Capacity Scheduler)。
  • 启用资源隔离(如 Linux 的 Cgroups)避免资源冲突。

YARN 高可用性

  • RM HA:通过 ZooKeeper 实现主备 RM 切换,避免单点故障。
  • NM 恢复:NM 重启后重新注册,恢复正在运行的容器。

YARN 与生态集成

  • Spark on YARN:通过--master yarn提交 Spark 作业,YARN 管理资源。
  • Flink on YARN:支持 Session 模式和 Per-Job 模式部署。

通过合理配置和调度策略,YARN 能够高效支持大规模分布式计算任务。

YARN(Yet Another Resource Negotiator)是 Hadoop 2.0 引入的核心组件,旨在将资源管理与任务调度从 MapReduce 框架中解耦,从而支持更多类型的分布式计算模型。YARN 主要由以下几个关键组件构成:

  1. ResourceManager(RM):全局的资源调度器,负责整个集群的资源分配和管理。它运行在主节点上,包含两个主要子组件:

    • Scheduler(调度器):根据容量、队列等限制条件(如内存、CPU 等)将资源分配给各个应用程序,但不负责监控或跟踪任务执行状态。
    • ApplicationsManager(ASM):处理客户端提交的应用程序,启动 ApplicationMaster 并在失败时重启。
  2. NodeManager(NM):运行在每个从节点上的代理,负责单个节点的资源管理(如 CPU、内存、磁盘等),并定期向 ResourceManager 汇报资源使用情况。它还负责启动和监控容器(Container)。

  3. ApplicationMaster(AM):每个应用程序(如 MapReduce 作业、Spark 作业)都有一个对应的 ApplicationMaster,它负责与 ResourceManager 协商资源,并与 NodeManager 协作来启动和监控任务。

  4. Container:YARN 中的资源抽象单位,封装了一定数量的资源(如 CPU 核心数、内存),用于运行任务或 ApplicationMaster。

YARN 的工作流程大致如下:

  • 用户提交应用程序到 ResourceManager。
  • ResourceManager 分配一个 Container 来启动该应用的 ApplicationMaster。
  • ApplicationMaster 向 ResourceManager 申请更多 Container 来并行执行任务。
  • ResourceManager 通过 Scheduler 分配资源,NodeManager 在各自的节点上启动 Container 执行任务。
  • ApplicationMaster 监控任务执行,完成后再向 ResourceManager 注销并释放资源。

YARN 的优势包括:

  • 支持多租户和多种计算框架(如 MapReduce、Spark、Flink、Hive on Tez 等)。
  • 提高集群资源利用率。
  • 实现更好的可扩展性和灵活性。
// 示例:YARN 客户端提交应用的基本逻辑(简化)publicclassYarnClientExample{publicstaticvoidmain(String[]args)throwsException{YarnClientyarnClient=YarnClient.createYarnClient();yarnClient.init(newConfiguration());yarnClient.start();// 创建应用YarnClientApplicationapp=yarnClient.createApplication();ApplicationSubmissionContextappContext=app.getApplicationSubmissionContext();// 设置应用名称、AM 信息、资源需求等appContext.setApplicationName("DemoApp");appContext.setAMContainerSpec(/* 启动AM的上下文 */);appContext.setResource(Resource.newInstance(1024,1));// 1GB 内存,1核// 提交应用yarnClient.submitApplication(appContext);}}

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

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

相关文章

MCP Server API KEY配置全攻略(从入门到生产级防护)

第一章:MCP Server API KEY配置全攻略(从入门到生产级防护) 在构建现代微服务架构时,MCP Server(Microservice Control Plane Server)的API KEY配置是保障系统安全通信的核心环节。合理的密钥管理机制不仅能…

基于51单片机智能手环老人防跌倒报警器设计加速度检测套件13(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51单片机智能手环老人防跌倒报警器设计加速度检测套件13(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码 51单片机老人防跌倒蜂鸣器报警系统加速度检测13产品功能描述: 本系统由STC89C52单片机、ADXL345重力加速…

基于51单片机智能家居火灾报警器烟雾温度无线APP视频监控设计68(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于51单片机智能家居火灾报警器烟雾温度无线APP视频监控设计68(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码产品功能描述: 本系统由STC89C52单片机、烟雾传感器、ADC0832模数转换芯片、4位共阳数码管、&#xf…

Z-Image-Turbo网络配置:外网访问UI界面的安全设置

Z-Image-Turbo网络配置:外网访问UI界面的安全设置 Z-Image-Turbo_UI界面是一个基于Gradio构建的图形化图像生成操作平台,用户可以通过直观的网页交互方式调用模型完成高质量图像的生成任务。该界面集成了参数调节、图像预览、历史记录查看等核心功能&am…

大模型实战:6大场景减少80%重复工作量,附落地方法

一、文档处理:从 “逐字打磨” 到 “一键生成 优化”​1. 减少文案创作与修改工作量(节省 60% 时间)​痛点:写报告、方案、邮件时,纠结措辞、逻辑梳理耗时久,反复修改占用大量精力。​大模型实战用法&…

跨域访问总是失败?,深度剖析MCP Server CORS机制与精准修复方案

第一章:跨域访问总是失败?深度剖析MCP Server CORS机制与精准修复方案 在现代前后端分离架构中,前端应用常通过浏览器向后端 MCP Server 发起请求。然而,由于同源策略的限制,跨域请求极易触发 CORS(跨源资源…

基于STM32单片机智能指南针电子罗盘方位显示野外探险设计套件23(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于STM32单片机智能指南针电子罗盘方位显示野外探险设计套件23(设计源文件万字报告讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码STM32单片机智能指南针电子罗盘方位显示23 产品功能描述: 本系统由STM32F103C8T6单片机、LCD1602液晶…

出海电商选择海外云服务器有何技巧

出海电商选择海外云服务器有何技巧 在全球化布局加速的当下,出海电商已成为中小企业突破增长瓶颈、开拓海外市场的核心路径,但多数商家在出海初期都会陷入同一个困境:投入大量资金搭建独立站、布局跨境渠道,却因选…

Java毕设项目:基于springboot的药品商城管理系统(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

对话历史丢失太可怕?Dify聊天记录导出为文本的4大安全方案

第一章:对话历史丢失太可怕?Dify聊天记录导出为文本的4大安全方案 在使用 Dify 构建 AI 聊天应用时,对话历史是用户交互的核心资产。一旦因系统故障、配置错误或误操作导致数据丢失,将严重影响用户体验与业务连续性。为防止此类风…

NoSQL数据库MongoDB、HBase、Redis优劣势对比

第一章:NoSQL 综述与分类 在深入细节之前,我们首先需要理解 NoSQL 的范畴和分类。NoSQL(Not Only SQL)是一类非关系型数据库的统称,其核心设计目标是为了解决大规模数据集合、高并发、低延迟、灵活数据模型等传统关系…

unet image Face Fusion适合中小企业吗?低成本AI图像方案案例

unet image Face Fusion适合中小企业吗?低成本AI图像方案案例 1. 引言:人脸融合技术正在变得触手可及 你有没有想过,一家只有几个人的小公司,也能轻松做出“换脸级”视觉效果?这不是电影特效公司的专利,也…

ADB 读取 trace文件

ANR trace文件默认在 /data/anr 下面。如果没有 root 权限,那你能看,但是没有办法 adb pull 或者 cp 到其他位置上# 生成文本格式报告(不推荐) adb bugreport > bugreport.txt# 生成ZIP格式报告(推荐) a…

(Dify + Milvus深度整合)构建企业级RAG系统的秘密武器

第一章:Dify Milvus深度整合:企业级RAG系统的战略价值 在构建现代企业级检索增强生成(RAG)系统时,Dify 与 Milvus 的深度整合展现出显著的技术协同优势。Dify 作为低代码 AI 应用开发平台,提供可视化编排和…

计算机Java毕设实战-基于springboot的药品商城药品管理、订单管理管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Z-Image-Turbo建筑可视化案例:室内设计图生成部署实战

Z-Image-Turbo建筑可视化案例:室内设计图生成部署实战 1. 引言:让AI成为你的室内设计助手 你有没有遇到过这样的情况:脑子里有个理想的客厅布局,阳光洒在木地板上,北欧风的家具搭配绿植,可就是画不出来&a…

Java程序员请注意:Spring全家桶这样学更高效!

Spring是我们Java程序员面试和工作都绕不开的重难点。很多粉丝就经常跟我反馈说由Spring衍生出来的一系列框架太多了,根本不知道从何下手;大家学习过程中大都不成体系,但面试的时候都上升到源码级别了,你不光要清楚了解Spring源码…

给“基建狂魔”的数字化图纸:2026大型工程国企管理软件推荐,把超级工程装进手机里

当“基建狂魔”的称号一次次震撼世界,我们看见的是穿山跨海的桥、拔地而起的城。但少有人看见的是,每一个超级工程背后,那些凌晨依然亮着灯的指挥部,那些被无数通紧急电话催问进度的项目经理,那些在堆积如山的报表和微信群里疲于奔命的工程师们。 辉煌的工程奇迹与传统的管理方…

复杂不确定环境下重大建设工程管理韧性评价(二维云模型)附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 🍎 往期回顾关注个人主页:Matlab科研工作室 👇 关注我领取海量matlab电子书和数学建模资料 &#…

丽水市莲都青田缙云遂昌松阳区英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜

经教育部教育考试院备案、全国雅思教学质量评估中心独家指导,参照《2025-2026中国大陆雅思备考趋势白皮书》核心指标,结合丽水市莲都区、青田县、缙云县、遂昌县、松阳县10600份考生调研问卷、118家教育机构实地探访…