Hadoop学习日记-YARN组件

YARN(Yet Another Resource Negotiator)作为一种新的Hadoop资源管理器,是另一种资源协调者。

YARN是一个通用的资源管理系统调度平台,可为上层应用提供统一的资源管理和调度

YARN架构图
在这里插入图片描述

YARN3大组件:

(物理层面)ResourceManager(RM):

YARN集群中的主角色,决定系统所有应用程序之间资源分配的最终权限,即最终仲裁者。通过NM分配管理各个机器上的计算资源

(物理层面)NodeManager(NM):

YARN集群中的从角色,负责管理本机器上的计算资源,由RM命令启动Container容器、监视容器使用情况、分发回收资源

(App层面)ApplicationMaster(AM):

用户Client提交的每一个应用程序均包含一个AM,负责应用程序内部各阶段的资源申请,监督程序的执行。

程序提交YARN的交互流程:

  1. MR作业提交 Client–RM
  2. 资源的申请 MrAppMaster–RM
  3. MR作业状态汇报 Container(Map|Reduce Task)–Container(MrAppMaster)
  4. 节点的状态汇报 NM–RM

在这里插入图片描述

主要步骤:

1)用户通过客户端向YARN中ResourceManager提交应用程序(比如Hadoop jar提交MR程序)

2)ResourceManager为该应用程序分配第一个容器,并与对应的NodeManager通信,要求它在这个容器中启动这个应用程序的ApplicationMaster

3)ApplicationMaster启动成功之后,首先向ResourceManager注册并保持通信,用户因此可以通过ResourceManager查看应用程序的运行状态

4)AM为本次程序内部的各个Task任务向RM申请资源,并监控它的运行状态

5)ApplicationMaster申请到资源后,与对应的NodeManager通信,要求它启动任务

6)NodeManager为任务设置好运行环境后,将任务启动命令写到一个脚本中,并通过运行脚本启动任务

7)各个任务通过RPC协议向ApplicationMaster汇报自己的状态和进度,以获取各个任务的运行状态,在应用程序运行过程中,用户可以随时通过RPC协议向ApplicationMaster查询应用程序的当前运行状态。

8)应用程序运行完成后,ApplicationMaster向ResourceManager注册并关闭自己

YARN资源调度器Scheduler

Scheduler负责给应用分配资源,是ResourceManager的核心组件之一。其完全用于调度作业,且无法跟踪应用程序的状态

三种调度器:

FIFO Scheduler(先进先出调度器)、Capacity Scheduler(容量调度器)默认、Fair Scheduler(公平调度器)

FIFO:
在这里插入图片描述

该调度器不考虑优先级和范围,适用于负载较低的小规模集群,当使用大型共享集群时,它的效率较低且会导致一些问题

Capacity:

在这里插入图片描述

该调度器允许多个组织共享整个集群资源,每个组织可以获得集群的一部分计算能力。通过给每个组织分配专门的队列,再为队列分配一定的集群资源,这样的整个集群就可以通过设置多个队列的方式给多个组织提供服务。简单来说每个队列都有独立的资源,队列的结构和资源是可以进行配置的
在这里插入图片描述

Fair:

公平调度:对于调度A和B每个用户都有自己的队列,A启动一个作业,由于B没有需求,A得到了集群所有可用的资源。B在A的作业仍在运行时启动了一个作业,经过一段时间后A、B各自作业都使用了一半的资源。若B用户在其他作业仍在运行时开始第二个作业,它将与B的另一个作业共享其资源。因此B的每个作业将拥有资源的四分之一,而A继续拥有一半的资源。结果是资源在用户之间公平的共享

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

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

相关文章

ICML 2023 | 拓展机器学习的边界

编者按:如今,机器学习已成为人类未来发展的焦点领域,如何进一步拓展机器学习技术和理论的边界,是一个极富挑战性的重要话题。7月23日至29日,第四十届国际机器学习大会 ICML 2023 在美国夏威夷举行。该大会是由国际机器…

HarmonyOS/OpenHarmony元服务开发-配置卡片的配置文件

卡片相关的配置文件主要包含FormExtensionAbility的配置和卡片的配置两部分: 1.卡片需要在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相关信息。FormExtensionAbility需要填写metadata元信息标签,其中键名称…

CentOS 7安装Docker

文章目录 🌞版本选择☀️1.CentOS安装Docker🌱1.1.卸载(可选)🌱1.2.安装docker🌱1.3.启动docker🌱1.4.配置镜像加速 ☀️2.CentOS7安装DockerCompose🌱2.1.下载🌱2.2.修改…

赛车游戏——【极品飞车】(内含源码inscode在线运行)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

【Lua学习笔记】Lua进阶——Table(3) 元表

接上文 文章目录 元表__tostring__call__index__newindex运算符元方法其它元表操作 元表 Q:为什么要使用元表? A:在Lua中,常常会需要表与表之间的操作。元表中提供了一些元方法,通过自定义元方法可以实现想要的功能&…

时间复杂度为O(n2)的三种简单排序算法

1.冒泡排序 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少少一个元素移动到它应该在的位置,重复n次,就完成了n个数据的排序工作。 /*** …

数据包在网络中传输的过程

ref: 【先把这个视频看完了】:数据包的传输过程【网络常识10】_哔哩哔哩_bilibili 常识都看看 》Ref: 1. 这个写的嘎嘎好,解释了为啥4层7层5层,还有数据包封装的问题:数据包在网络中的传输过程详解_数据包传输_张孟浩_jay的博客…

<C++>二、 类和对象

1.面向对象和面向过程 C语言是面向过程的,关注的是过程,分析出求解问题的步骤, 通过函数调用逐步解决问题。 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 2. C类 C…

2023 蓝桥杯真题B组 C/C++

https://www.dotcpp.com/oj/train/1089/ 题目 3150: 蓝桥杯2023年第十四届省赛真题-冶炼金属 题目描述 小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金 属 O…

Java开发 - Redis常见问题场景及解决办法一览

前言 前面几篇博客对Redis的讲解不可谓不详细,从单节点到主从,到sentinel哨兵,到Redis Cluster都一一搭配使用给大家做了讲解,但在使用Redis的过程中我们还是要注意一些比较常见的问题,比如穿透、击穿等等&#xff0c…

助力保险行业数字化创新,麒麟信安参展2023中国财险科技应用高峰论坛

2023年7月27日,由中科软科技股份有限公司主办的“中国财险科技应用高峰论坛”在北京古北水镇成功举办。作为享誉中国保险科技界的盛会,本次活动以“数智保险 创新未来”主题,汇聚全国数百位保险公司主管领导、资深保险行业信息化专家&#xf…

Ae 效果:CC Kernel

颜色校正/CC Kernel Color Correction/CC Kernel CC Kernel(CC 卷积核)效果主要用于图像的卷积处理,通过在卷积矩阵中设置不同的权重值,可以实现图像的锐化 Sharpen、模糊 Blur、查找边缘 Find Edges以及浮雕 Emboss等效果。 ◆ …

服务调用---------Ribbon和Feign

目录​​​​​​​ 1、Ribbon 1.1 Ribbon简介 1.2 Ribbon负载均衡 负载均衡原理 负载均衡策略 Ribbon和Nginx的区别 1.3 服务调用和Ribbon负载均衡实现 2、Feign&openFeign 3、Feign支持的配置 日志功能 连接池 feign-api远程包 1、Ribbon 1.1 Ribbon简介 Ribb…

神经概率语言模型

本文主要参考《A Neural Probabilistic Language Model》这是一篇很重要的语言模型论文,发表于2003年。主要贡献如下: 提出了一种基于神经网络的语言模型,是较早将神经网络应用于语言模型领域的工作之一,具有里程碑意义。采用神经网络模型预测下一个单词…

05-向量的意义_n维欧式空间

线性代数 什么是向量?究竟为什么引入向量? 为什么线性代数这么重要?从研究一个数拓展到研究一组数 一组数的基本表示方法——向量(Vector) 向量是线性代数研究的基本元素 e.g. 一个数: 666,…

springboot整合tio-websocket方案实现简易聊天

写在最前: 常用的http协议是无状态的,且不能主动响应到客户端。最初想实现状态动态跟踪只能用轮询或者其他效率低下的方式,所以引入了websocket协议,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务…

实用上位机--QT

实用上位机–QT 通信协议如下 上位机设计界面 #------------------------------------------------- # # Project created by QtCreator 2023-07-29T21:22:32 # #-------------------------------------------------QT += core gui serialportgreaterThan(QT_MAJOR_V…

Unity实现在3D模型标记

Canvas 模式是UI与3D混合模式(Render modelScreen space-Camera) 实现在3D模型标记,旋转跟随是UI不在3D物体下 代码: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public clas…

矩阵中的路径(JS)

矩阵中的路径 题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是…

valgrind——内存泄漏检测介绍

文章目录 1. 概述1. 体系结构2. Linux 程序内存空间布局3. 内存检查原理 2. valgrind工具3. 常用选项4. 示例1. 内存泄漏2. 数组越界3. 内存覆盖4. 使用未初始化的值5. 内存申请与释放函数不匹配 5. 总结 1. 概述 1. 体系结构 Valgrind 是一套 Linux 下,开放源代码…