Hadoop——Yarn基础架构

news/2024/5/19 1:19:51

Hadoop——Yarn基础架构

Hadoop YARN(Yet Another Resource Negotiator)是Apache Hadoop生态系统中的一个子项目,它是用于集群资源管理的框架,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序

YARN的基础架构主要由以下几个组件组成:

  1. ResourceManager(资源管理器)

    • ResourceManager(RM)是整个集群的主节点,负责集群资源的统一管理和调度。它包括两个主要的组件:Scheduler(调度器)和ApplicationManager(应用程序管理器)。
    • Scheduler负责根据应用程序的需求,将集群中的资源分配给不同的应用程序
    • ApplicationManager负责接收来自客户端的应用程序提交请求,并与Scheduler协作以获取资源,并为应用程序分配相应的资源容器。
  2. NodeManager(节点管理器)

    • NodeManager(NM)运行在集群中的每个节点上,负责管理该节点上的资源,并与ResourceManager通信以报告节点的健康状况和可用资源。
    • NodeManager负责启动和监控容器(Container),容器是YARN中的资源分配单元,用于运行应用程序的任务或进程。
  3. ApplicationMaster(应用程序主管)

    • 每个由YARN调度的应用程序都有一个对应的ApplicationMaster(AM),它负责协调应用程序的执行,并与ResourceManager进行通信以请求资源和监控应用程序的状态。
    • ApplicationMaster在启动时会向ResourceManager注册自己,并在执行期间负责管理应用程序的资源需求和任务执行情况。
  4. Container(容器)

    • 容器是YARN中的资源分配单元,它封装了应用程序所需的资源,包括CPU、内存和磁盘等。
    • ResourceManager通过NodeManager启动和监控容器的执行,NodeManager负责在本地启动和管理容器内的任务或进程。

示例

假设用户提交了一个MapReduce作业到Hadoop集群,并且该集群上已经运行了YARN。

  1. 用户提交作业
    用户通过Hadoop集群的客户端工具(如hadoop jar命令)提交了一个MapReduce作业,该作业包含了需要处理的数据、Mapper函数、Reducer函数等信息。

  2. 作业提交到ResourceManager
    当作业提交时,ApplicationManager接收到了这个作业的提交请求。ApplicationManager向ResourceManager注册一个新的应用程序,并向ResourceManager提供作业的资源需求。

  3. ResourceManager分配资源
    ResourceManager接收到作业的资源需求后,调度器(Scheduler)开始分配资源。调度器根据集群中各节点的资源情况和作业的需求,决定在哪些节点上启动作业的任务。它为作业分配了一系列容器(Containers)来运行Mapper和Reducer任务。

  4. 容器启动
    ResourceManager通过与各个NodeManager通信,在选择的节点上启动了容器。每个容器中运行一个作业任务,其中包括Mapper任务和Reducer任务。

  5. 任务执行
    在容器中启动的Mapper任务会读取输入数据,并按照用户指定的Mapper函数进行处理;Reducer任务会接收来自Mapper的中间结果,并按照用户指定的Reducer函数进行处理。这些任务在各自的容器中并行执行。

  6. 监控和状态更新
    各个NodeManager会定期向ResourceManager发送心跳信息,报告节点的健康状况和可用资源。同时,各个容器会向对应的NodeManager发送进度和状态更新信息。ResourceManager和NodeManager根据这些信息来监控作业的执行情况,并在需要时进行调度和容错处理。

  7. 作业完成
    当所有的Mapper和Reducer任务都成功完成时,作业的执行状态被更新为完成,并向用户返回执行结果。ApplicationManager收到作业完成的通知后,将作业的执行结果返回给用户。

在这里插入图片描述


http://www.mrgr.cn/p/66706823

相关文章

js的算法-交换排序(冒泡)

交换排序 所谓交换排序,是指根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。基于交换的排序算法很多,本次介绍冒泡排序和快速排序。 冒泡 基本思想 从后往前(或从前往后)两两比较相邻元素的值&#xff0…

01_Linux最简单驱动-helloworld

Linux最简单驱动-helloworld 驱动分为四个部分: ​ 头文件 ​ 驱动模块的入口和出口 ​ 声明信息 ​ 功能实现 第一步,包含头文件 #include <linux/init.h> 包含宏定义的头文件 #include <linux/module.h> 包含初始化加载模块的头文件 第二步,驱动模块的入口和出…

《QT实用小工具·四十二》圆形发光图像

1、概述 源码放在文章末尾 该项目实现了图像的发光效果&#xff0c;特别适合做头像&#xff0c;项目demo演示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; import QtQuick 2.7 import QtGraphicalEffects 1.12Item {id: rootwidth: 80height: 80property int ra…

Grid 布局

文章目录 容器属性display 属性grid-template-columns 和 grid-template-rows 属性row-gap、column-gap、gap 属性grid-template-areas 属性grid-auto-flow 属性justify-items、align-items、place-items 属性justify-content、align-content、place-content 属性grid-auto-col…

KNN算法思想与Python实现

古语说得好,物以类聚,人以群分;近朱者赤,近墨者黑。这两句话的大概意思就是,你周围大部分朋友是什么人,那么你大概率也就是这种人,这句话其实也就是K最近邻算法的核心思想。kNN(k- Nearest Neighbor)法即k最邻近法,最初由 Cover和Hart于1968年提出,是一个理论上比较…

数据结构练习-算法与时间复杂度

----------------------------------------------------------------------------------------------------------------------------- 1. 设n是描述问题规模的非负整数&#xff0c;下列程序段的时间复杂度是( )。 x0;while(n>(x1)*(x1)xx1; A.O(logn) B.O(n^(1/2)) C.O(n)…

递归神经网络(RNN)在AI去衣技术中的深度应用

在人工智能&#xff08;AI&#xff09;技术飞速发展的今天&#xff0c;图像处理和计算机视觉领域不断取得新的突破。其中&#xff0c;AI去衣技术作为一个具有挑战性的研究方向&#xff0c;引起了广大研究者和公众的关注。递归神经网络&#xff08;RNN&#xff09;作为深度学习的…

HarmonyOS 应用生命周期有哪些? 按返回键会调用哪些生命周期?

UIAbility 生命周期:onCreate :页面初始化,变量定义,资源加载。 onWindowStageCreate:设置 UI 界面加载、设置 WindowStage 的事件订阅。 onForeground:切换至前台,申请系统需要的资源,或者重新申请在 onBackground()中释放的资源。 onBackground:切换至后台,释放 U…

(007)Blender 根据顶点组分离模型

1.选中模型&#xff0c;并且进入【3D视图】【编辑模式】&#xff1a; 2.选择顶点组&#xff1a; 3.分离选中项&#xff1a;

DRF之过滤 排序 分页

DRF之过滤 排序 分页使用【过滤 排序 分页】都需要在继承了GenericAPIView的视图类下使用 并指定类属性【queryset 和 serializer_class】【一】过滤 # 所有过滤类都继承 【BaseFilterBackend】 from rest_framework.filters import BaseFilterBackend【1】drf自带的过滤 # 导入…

图文结合手把手教你创建SpringCloud项目

前言 什么是SpringCloud? Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务注册、服务发现、网关、路由、链路追踪等。Spring Cloud 并不是重复造轮子,而是将市面上开发得比较好的模块集成进去,进行封装,从而减少了…

redis中的缓存穿透问题

缓存穿透 缓存穿透问题&#xff1a; 一般请求来到后端&#xff0c;都是先从缓存中查找数据&#xff0c;如果缓存中找不到&#xff0c;才会去数据库中查询数据。 而缓存穿透就是基于这一点&#xff0c;不断发送请求查询不存在的数据&#xff0c;从而使数据库压力过大&#xff…

ubuntu无法用快捷键启动终端(CTRL+AIT+T)

我的电脑不知道安装什么东西之后&#xff0c;就不能用快捷键&#xff08;CTRLAITT&#xff09;打开终端了 只能在文件夹内&#xff0c;点击鼠标右键选择终端&#xff0c;然后打开终端 一直这么用了几个月&#xff0c;今天实在受不了了&#xff0c;所以解决此问题 本文参考文章…

力扣-118. 杨辉三角

1.题目介绍 题目地址(118. 杨辉三角 - 力扣(LeetCode)) https://leetcode.cn/problems/pascals-triangle/ 题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: …

IDEA中springboot项目编译两次的问题

原因:因为在导入项目的之后,项目无法运行,问题1:显示缺少org.springbootframe的依赖,不知道怎么解决,网上搜了个方法,就是勾选下图的选项,意思是把build操作由IDEA交给Maven,勾选之后确实可以启动项目了但是后面在执行Mybatis时,问题2:我发现无论如何都会报一个唯一…

深入刨析 mysql 底层索引结构B+树

文章目录 前言一、什么是索引&#xff1f;二、不同索引结构对比2.1 二叉树2.2 平衡二叉树2.3 B-树2.4 B树 三、mysql 的索引3.1 聚簇索引3.2 非聚簇索引 前言 很多人看过mysql索引的介绍&#xff1a;hash表、B-树、B树、聚簇索引、主键索引、唯一索引、辅助索引、二级索引、联…

计算机为什么需要中断?

// generated by ChatGPT-3.5 & hk416hasu中断是计算机系统中一种重要的机制,它允许系统在执行过程中临时中止当前任务,转而处理其他优先级更高或更紧急的任务,然后再返回原来的任务。以下是一些计算机需要中断的原因:1. 响应外部事件:计算机系统需要能够响应各种外部…

SpringCloud之负载均衡Ribbon

Ribbon 是一个客户端负载均衡工具&#xff0c;主要功能是将面向服务的Rest模板&#xff08;RestTemplate&#xff09;请求转换成客户端负载均衡的服务调用。通过Ribbon&#xff0c;开发人员可以在客户端实现请求的负载均衡&#xff0c;而无需单独部署负载均衡器。Ribbon支持多…

Linux实现文件共享

#nfs-utils、rpcbind 软件包来提供 NFS 共享服务 #客户端创建共享文件夹&#xff1a; nmcli c reload nmcli c up ens160 systemctl stop firewalld systemctl disable firewalld rpm -q nfs-utils rpcbind #查看是否安装 systemctl enable rpcbind systemctl enable nfs…

OpenHarmony网络协议通信—libevent [GN编译] - 事件通知库

libevent主要是用C语言实现了事件通知的功能 下载安装 直接在OpenHarmony-SIG仓中搜索libevent并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径&#xff1a;./third_party/libevent 修改添加依赖的编译脚本 在/developtools/bytrace_standard/…