YARN【工作机制】

news2024/11/16 9:35:04

Yarn概念

        Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式
操作系统平台 ,而 MapReduce 等运算程序则相当于运行于 操作系统之上的应用程序

Yarn的四大组件

        YARN 主要由 ResourceManager(整个集群资源的老大) NodeManager(单个节点资源的老大) ApplicationMaster(每个作业的老大)  Container(容器,负责运行MapTask、ReduceTask)  等组件构成。

ResourceManager(RM)

  1. 处理客户端请求,客户端请求提交一个任务,由RM来进行处理
  2. 监控NodeManager,监控所有节点的运行情况,有节点资源不足就进行处理
  3. 启动或监控ApplicationMaster,客户端提交了一个MR程序,对应启动一个ApplicationMaster,如果纸处理这个任务的节点挂了,就把这个任务交给别的节点去处理
  4. 资源的分配和调度

NodeManager

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

ApplicationMaster

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

Container

        是YARN中对资源的抽象,封装了节点上的资源(内存、CPU、磁盘、网络等),相当于一台小型计算机。

YARN工作机制

例子:我们提交一个MapReduce程序给集群进行WordCount单词统计。

1.客户端提交MapReduce程序

job.waitForCompletion();  -> 创建一个YarnRunnner ->

2.客户端向RM申请一个Application

3. RM给客户端返回一个集群路径 以及 一个应用id(Application_id)-> 

4. 客户端提交MapReduce作业需要的资源

  • job.split,作业的切片信息
  • job.xml 作业的配置参数信息 
  • wordcount.jar 用户的业务逻辑代码

5. 客户端告诉MR资源提交完毕,申请运行MRAppMaster

6.RM将客户端的请求初始化为一个Task

        由于我们的客户端可能是多个,所以需要将每个客户端的Task都放到一个队列当中,一个一个执行。

7. NodeManager领取Task

        NodeManager领取到Task后创建容器Container(任何Task都是在容器中执行)
Container启动一个MRAppMaster进程

8. 去集群上下载job运行需要的资源到本地

9. MRAppMaster再次向RM申请MapTask容器

10. MRAppMaster创建MapTask需要的容器

        通过多个或一个NodeManager创建多个的容器,开启对应个数的MapTask(即使是多个MapTask也可能在同一个NodeManager的多个容器中)

11. MRAppMaster发送启动命令

        MRAppMaster向新开启的NodeManager发送启动命令,启动对应的MapTask,一个MapTask对应一个YarnChild进程。
        MapTask运行完毕,将数据持久化到磁盘

12. MRAppMaster创建ReduceTask需要的容器

        MRAppMaster一直监控运行的执行情况,当检测到MapTask任务执行完毕之后,立即向RM申请相应数量的容器来执行ReduceTask程序,依旧是开启相应数量的容器,在容器中启动ReduceTask,这些ReduceTask对应的进程任然是YarnChild。

13. 作业完成释放资源

        MRAppMaster检测到ReduceTask执行完毕,向RM申请注销自己,将资源(开启的所有NodeManager)全部释放

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

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

相关文章

javascript基础十九:说说你对正则表达式的理解?应用场景?

一、是什么 正则表达式是一种用来匹配字符串的强有力的武器 它的设计思想是用一种描述性的语言定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的 在 JavaScript中,正则表达式也是…

MySQL架构简介

MySQL是系统架构中最常见的中间件,主要由Server层(连接器Connectors、连接池Connection Pool、查询缓存query cache、分析器Parser、优化器Optimizer、执行器、binlog)以及存储引擎层组成。 MySQL架构简介 连接器 与客户端建立连接、认证身…

0803平面及其方程-向量代数与空间解析几何

文章目录 1 曲面方程与空间曲线方程的概念1.1 曲面方程1.2 空间曲线的方程 2 平面的点法式方程3 平面的一般方程4 两平面的夹角4.1 两平面夹角的定义4.2 夹角的余弦公式4.3 点到平面的距离 结语 1 曲面方程与空间曲线方程的概念 1.1 曲面方程 如果曲面与三元方程 ​ F ( x …

安捷伦MSOX4104A示波器/Agilent MSO-X4104A

安捷伦MSOX4104A示波器/Agilent MSO-X4104A 简介: 1GHz带宽 4个模拟通道 集成逻辑计时分析仪 配有业界*大的 12.1 英寸电容触摸屏 产品特点: 五合一的仪器 示波器 逻辑分析仪(可选) 串行协议分析仪(USB2.0、ARIN…

柔性车间作业调度

1柔性车间作业调度 n n n个工件 { J 1 , J 2 , ⋯ , J n } \{J_1,J_2,\cdots,J_n\} {J1​,J2​,⋯,Jn​}要在 m m m台机器 { M 1 , M 2 , ⋯ , M m } \{M_1,M_2,\cdots,M_m\} {M1​,M2​,⋯,Mm​}上加工。每个工件包含一道或多道工序,工序顺序是预先确定的&#xf…

【Java|多线程与高并发】Thread 常见的方法总结

文章目录 1. 前言2. 方法getId()3. 方法getName()4. 方法getState()5. 方法getPriority(int newPriority)6. 方法isDaemon()和setDaemon()7. 方法isAlive()8. 方法isInterrupted()9. 方法currentThread()10. 方法sleep()11. 方法join()12. 总结 1. 前言 本文主要介绍Thread类常…

第11章_数据库的设计规范

第11章_数据库的设计规范 1. 为什么需要数据库设计 我们在设计数据表的时候,要考虑很多问题。比如: 用户都需要什么数据?需要在数据表中保存哪些数据?如何保证数据表中数据的正确性,当插入、删除、更新的时候该进行怎样的约束检查?。如何降低数据表…

javascript基础十八:说说你对JavaScript中事件循环的理解​

一、是什么 JavaScript 在设计之初便是单线程,即指程序运行时,只有一个线程存在,同一时间只能做一件事 为什么要这么设计,跟JavaScript的应用场景有关 JavaScript 初期作为一门浏览器脚本语言,通常用于操作 DOM &#…

【C++】C++11新特性的讲解

新特性讲解第一篇~ 文章目录 前言一、较为重要的新特性 1.统一的初始化列表2.decltype关键字3.右值引用移动语义总结 前言 C11 简介 : 在 2003 年 C 标准委员会曾经提交了一份技术勘误表 ( 简称 TC1) ,使得 C03 这个名字已经取代了 C98 称为 C11 之前的…

【游戏编程扯淡精粹】工作第三年总结

工作第三年总结 文章目录 工作第三年总结#1 做了什么自研路线Lua 脚本系统ToolX #2 职业发展如何做事技术中台化内卷的职业市场个人成长 #3 心态建设Owner vs 打工人 今年仍然是个人成长视角更多一些,额外新学到的重点是,借助团队力量 先介绍两个词&…

通过自由度比较迭代次数

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由5张二值化的图片组成,让A中有7个1,B中全是0,让A的5行1的数量为1,1,1,2,2;让A的3列1的数量…

chatgpt赋能python:Python列表从后往前删除的方法及注意事项

Python列表从后往前删除的方法及注意事项 Python是一种功能强大而易于使用的编程语言。在Python中,列表是重要的数据类型之一,它可以存储任意类型的数据,例如整数、字符串、浮点数和对象等,而且列表数据可以动态添加或删除。在编…

numpy模块

目录 ❤ numpy简介 ❤ 为什么用numpy ❤ 创建numpy数组 ❤ numpy数组的常用属性 ❤ 获取numpy数组的行列数 ❤ 切割numpy数组 ❤ numpy数组元素替换 ❤ numpy数组的合并 ❤ 通过函数创建numpy数组 array arange linspace/logspace zeros/ones/eye/empty …

多功能电子听诊器(CMS-VESD)产品使用说明

Copyright reserved 子曰:桃李不言,下自成蹊。 Copyright reserved Ⅰ . 产品描述 : C M S − V E S D Ⅰ. 产品描述:^{CMS-VESD} Ⅰ.产品描述:CMS−VESD Ⅰ . 1 主要特点 : 如有疑问可留言沟通交流 Ⅰ.1 主要特点:^{如有疑问可留言沟通交流} Ⅰ.1主要特…

[python bezier贝塞尔曲线] 数值解法、德卡斯特里奥解法解法以及bezier库的使用demo

修改自这个老哥的,非常的nice,此处仅作为学习记录。 matplotlib3.7.0 可行 Note: 数值解法是真的快 先上图 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy as np import math import timeclass Bezier:def __init__(se…

使用HTML5开发Kinect体感游戏

一、简介 我们要做的是怎样一款游戏? 在前不久成都TGC2016展会上,我们开发了一款《火影忍者手游》的体感游戏,主要模拟手游章节《九尾袭来 》,用户化身四代,与九尾进行对决,吸引了大量玩家参与。 表面上看…

Makerbase SimpleFOC ESP32 例程5 双电机闭环位置测试

Makerbase SimpleFOC ESP32 例程5 双电机闭环位置测试 第一部分 硬件介绍 1.1 硬件清单 序号品名数量1ESP32 FOC V1.0 主板12YT2804电机2312V电源适配器14USB 线156pin杜邦线2 注意:YT2804是改装的云台无刷电机,带有AS5600编码器,可实现360连续运转。…

香蕉派(Banana Pi) BPi-P2 Zero开源硬件物联网开发板评测

我们从制造商处收到的样品 BPi-P2 Zero 和 BPi-P2 Maker SBC 用于本次审查的体验非常好。这些都是基于多年H3/H2 SoC使用经验的高质量硬件实现。 优点 优良的价格和适用性稳定且经过验证的架构低散热供电电源WiFi / 蓝牙 kod 零模型完美平衡的 Maker 模型 Banana Pi BPi-P2 的…

设备树与pinctrl

设备树与pinctrl 原理:芯片内部有个内存控制器访问芯片的各个控制器单元(如IIC、USB等), 阅读手册设置其相应功能即可。 设备树 是一种描述硬件的数据结构,由专门文件格式与语法结构。 pinctrl Pinctrl:Pin Contr…

vue-router(element侧导栏,子组件内容切换,不传参)使用的详细步骤

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm1011.2415.3001.5343哔哩哔哩欢迎关注…