Hadoop生态圈三大组件:HDFS的读写流程、MapReduce计算流程、Yarn资源调度

文章目录

  • 1. HDFS的读写流程
    • 1.1 HDFS读流程
    • 1.2 HDFS写流程
  • 2. MapReduce计算流程
  • 3. Yarn资源调度
      • 一、客户端请求资源
      • 二、Resource Manager处理请求
      • 三、任务资源计算与申请
      • 四、Resource Manager分配资源
      • 五、Node Manager执行任务
      • 六、任务执行与监控

1. HDFS的读写流程

1.1 HDFS读流程

  • 客户端首先向Namenode发送读取请求,询问要读取的文件存储在哪些数据节点上。
  • Namenode会根据机架感知原理、网络拓扑关系、副本机制等返回部分或者全部的block所在的Datanode的地址。
  • 客户端根据Namenode返回的地址,选择一个距离最近的Datanode节点来读取第一个数据块。客户端直接与该数据节点建立连接,并发送读取请求。
  • Datanode接收到读取请求后,开始从磁盘上读取相应的数据块,并将数据通过网络传输给客户端。
  • 客户端在接收数据的同时,会对数据进行校验,以确保数据的完整性。如果发现数据损坏,客户端可以向其他包含该数据块副本的数据节点请求重新读取。
  • 当客户端读取完一个Datanode后,会根据Namenode提供的块位置信息,选择下一个数据节点来读取下一个数据块。重复上述步骤,直到客户端读取完整个文件。
    在这里插入图片描述

1.2 HDFS写流程

  • 客户端向Namenode发送写入请求。
  • Namenode接收到写入请求后,首先判断当前这个操作的用户是否具有写入权限,如果不具备写入权限会直接报错;如果有写入权限,再进行判断在写入的目录下是否存在这个文件;如果要写入的目录下已经存在这个文件,会直接报错;如果要写入的目录下不存在这个文件,通知客户端可以写入。
  • 客户端对文件进行切分操作,形成block块。
  • 客户端请求第一个block块存储在哪些地方。
  • Namenode根据机架感知原理、拓扑关系、副本机制等,找到相应的可以上传的Datanode的连接列表,返回给客户端。
  • 客户端从接受的Datanode列表中选择第一台建立连接,当连接第一台Datanode以后,让第一台Datanode与第二台Datanode连接,然后第二台Datanode与第三台Datanode连接形成一条pipeline(管道)。
  • 客户端通过数据包的形式发送数据。当第一台Datanode接收到数据后,将数据发送给第二台Datanode,第二台接收完,再将数据发送给第三台。当最后一个Datanode接受请求后建立一个反向的应答队列。当每个节点都将数据包接收到以后,反向给予应答响应(ack确认机制)。
    在这里插入图片描述

2. MapReduce计算流程

在这里插入图片描述
MR天龙八部
在这里插入图片描述

3. Yarn资源调度

在这里插入图片描述
YARN(Yet Another Resource Negotiator)是Hadoop的资源管理系统,其资源调度机制如下:

一、客户端请求资源

  1. 提交任务请求
    • 客户端首先将任务提交给Resource Manager。

二、Resource Manager处理请求

  1. 接收任务请求
    • Resource Manager接收到客户端的任务请求。
  2. 选择Node Manager
    • Resource Manager在Node Manager上寻找一个比较空闲的节点。
    • 通知并启动一个Application Master,将任务信息发送给Application Master,等待Application Master启动成功。
    • 如果启动失败,认为当前任务直接报错,告知任务无法执行。
  3. 获取任务相关信息
    • Application Master启动后,开始和主节点保持心跳机制,获取任务相关的信息(如JAR包路径、主类、参数)。

三、任务资源计算与申请

  1. 计算任务数量
    • 根据任务信息,计算共需要多少Map Task和多少Reduce Task。
  2. 发送资源请求
    • 通过心跳包,将任务计算的结果资源需求发送给主节点,进行资源的申请。

四、Resource Manager分配资源

  1. 资源分配工作
    • 根据收到的资源申请的结果信息,进行资源的分配工作。
    • 如果资源比较宽松,一次性将所需的所有资源一并全返回。
    • 如果资源比较紧张,最起码应该返回所有Map Task所需资源。

五、Node Manager执行任务

  1. 获取资源信息
    • Application Master通过心跳包,一直询问是否已经准备好资源,一旦准备好,将资源信息全部获取。
  2. 通知Node Manager
    • 根据获取的资源信息,通知各个Node Manager,启动相关的程序(先启动Map Task),告知Node Manager任务信息(如JAR包路径、主类、参数)。

六、任务执行与监控

  1. 执行任务进度监控
    • 每一个运行的container定时和Application Master汇总执行任务执行的进度。
    • 并且还基于Node Manager和Resource Manager的使用情况,报告资源的使用情况。
    • 如果初始化的时候,只是返回Map Task运行的资源。
    • 当Map Task执行完成后,或者执行过程中,Application Master向Resource Manager/Node Manager询问Reduce Task的资源是否已经准备好了,如果准备好了,就进行Reduce任务。
  2. 任务完成报告
    • 当整个Map Task和Reduce Task都运行完成后,通知Application Master已经完成执行任务了。
  3. 资源回收
    • Resource Manager收回所有分配的资源,然后通知Application Master可以执行自毁程序了。

这种资源调度机制确保了在YARN集群中,任务能够高效地获取和利用资源,同时也保证了资源的合理分配和管理。

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

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

相关文章

沃德商协会管理系统小程序源码

商协会管理系统小程序,作为新一代数字化商协会运营管理的先锋工具,其核心围绕“智慧化会员体系、智敏化内容运营、智能化活动构建”三大核心板块精心构建。这一系统通过智慧化会员体系,实现了会员信息的精准管理与高效互动,不仅简…

2024_E_100_连续字母长度

连续字母长度 题目描述 给定一个字符串&#xff0c;只包含大写字母&#xff0c;求在包含同一字母的子串中&#xff0c;长度第 k 长的子串的长度&#xff0c;相同字母只取最长的那个子串。 输入描述 第一行有一个子串(1<长度<100)&#xff0c;只包含大写字母。 第二行为…

Rancher2.6管理k8s1.23

Rancher2.6管理k8s1.23 简介Rancher和k8s的区别 安装rancher初始化实验环境新增hosts文件条目安装docker 安装Rancher登录Rancher平台 通过Rancher仪表盘管理k8s集群&#xff1a;部署tomcat服务创建Ingress资源创建ingress规则 简介 Rancher是一个开源的企业级多集群Kubernete…

HarmonyOS 开发知识总结

1. HarmonyOS 开发知识总结 1.1. resources->base->media中不可以新建文件夹&#xff1f; 项目图片路径resources->base->media中不可以新建文件夹&#xff0c;图片全平级放里面&#xff0c;查找图片不方便&#xff0c;有没有什么其他的办法解决这个难点&#xff…

Scala入门基础(12)抽象类

抽象类&#xff0c;制定标准&#xff0c;不要求去具体实现 包含了抽象方法的类就是抽象类。抽象方法只是有方法名&#xff0c;没有具体方法体的方法 定义抽象类要用abstract&#xff08;抽象&#xff09;关键字 用智能驾驶技术举例&#xff1a;演示&#xff09…

干货|基于Taro框架开发微信小程序如何配置实现自动格式化和代码规范

下面实例是基于 Taro框架使用React开发微信小程序的实现自动格式化和代码规范的配置教程 安装 ESLint 和 Prettier 插件&#xff1a; 在微信开发者工具的插件市场中搜索并安装 ESLint 和 Prettier 插件。 配置 .eslintrc.js 文件&#xff1a; 确保项目根目录下有一个 .eslint…

简单介绍$listeners

$listeners 它可以获取父组件传递过来的所有自定义函数&#xff0c;如下&#xff1a; // 父组件 <template><div class"a"><Child abab"handleAbab" acac"handleAcac"/></div> </template><script> impor…

on hold 的SSCI期刊,一般多久会解除?

SSCI期刊“On Hold”状态解析及其解除时间概览 在学术研究的广阔领域中&#xff0c;发表论文不仅是知识分享的重要途径&#xff0c;也是衡量研究成果影响力的关键指标之一。对于社会科学领域的学者而言&#xff0c;SSCI&#xff08;Social Sciences Citation Index&#xff09…

分布式机器学习模式 精彩试读

近年来&#xff0c;机器学习取得了巨大进步&#xff0c;但大规模机器学习仍然面临挑战。 以 模型训练为例&#xff0c;由于 TensorFlow、PyTorch 和 XGBoost 等机器学习框架具有多 样性&#xff0c;从而使得在分布式 Kubernetes 集群上自动化训练机器学习模型的过程并 不简单。…

力扣动态规划基础版(斐波那契类型)

70. 爬楼梯https://leetcode.cn/problems/climbing-stairs/ 70.爬楼梯 方法一 动态规划 考虑转移方程和边界条件&#xff1a; f&#xff08;x&#xff09; f&#xff08;x -1&#xff09; f&#xff08;x - 2&#xff09;;f&#xff08;1&#xff09; 1&#xff1b;f&…

NeRF三维重建—神经辐射场Neural Radiance Field(二)体渲染相关

NeRF三维重建—神经辐射场Neural Radiance Field&#xff08;二&#xff09;体渲染相关 粒子采集部分 粒子采集的部分我们可以理解为&#xff0c;在已知粒子的情况下&#xff0c;对图片进行渲染的一个正向的过程。 空间坐标(x,y,z&#xff09;发射的光线通过相机模型成为图片上…

Jmeter性能测试之阶梯式场景、波浪式场景

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1 阶梯式场景&#xff08;负载测试&#xff09;  该场景主要应用在负载测试里面&#xff0c;通过设定一定的并发线程数&#xff0c;给定加压规则&#xff0c;…

windows 上面交叉编译 适合arm架构上的linux内核系统的qt 版本,源码编译

1. 在机器上确认系统信息 cat /proc/cpuinfomodel name : ARMv7 Processor rev 5 (v7l) arm 32位 BogoMIPS : 57.14 Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 CPU implementer : 0x41 CPU architecture: 7 …

实战华为AC6508无线控制器+华为无线AP上线配置(AirEngine5762S-12+AirEngine5760-10)+无线WIFI配置

一、适用场景 1、适用于企业环境、校园环境、大户型家庭多层楼环境。 2、对于无线网络需要集中管理和监测的环境&#xff0c;无线wifi覆盖范围面积大&#xff0c;适用本实例。 3、当无线WIFI需要从一个区域到另一个区域无缝漫游时&#xff0c;确保应用不掉线&#xff0c;可使用…

MS41929双通道超低噪声 256 细分微步进低压电机驱动

MS41929 是一款双通道 5V 低压步进电机驱动芯片&#xff0c;通过 具有电流细分的电压驱动方式以及扭矩纹波修正技术&#xff0c;实现了 超低噪声微步进驱动。 芯片另外内置一个直流电机驱动器&#xff0c;上下开关的电阻之和 低至 1.1Ω 。 MS41929 内置了晶振放大模…

WPF实现类似网易云音乐的菜单切换

这里是借助三方UI框架实现了&#xff0c;感兴趣的小伙伴可以看一下。 深色模式&#xff1a;​ 浅色模式&#xff1a; ​这里主要使用了以下三个包&#xff1a; MahApps.Metro&#xff1a;UI库&#xff0c;提供菜单导航和其它控件​​​​​​​ 实现步骤&#xff1a;1、使用B…

【KEIL那些事 4】CMSIS缺失!!!!导致不能编译!!!!软件自带芯片下载缓慢!!!!!!快速下载芯片包!!!!!

安装了keli发现emmm&#xff0c;CMSIS缺失&#xff01;&#xff01;&#xff01;&#xff01;不能编译&#xff0c;&#xff0c;&#xff0c;自带下载芯片缓慢&#xff0c;&#xff0c;&#xff0c;官网下载emmm&#xff0c;竟然不带动的&#xff01;&#xff01;&#xff01;&…

打开游戏提示丢失(或找不到)XINPUT1_3.DLL的多种解决办法

xinput1_3.dll是一个动态链接库&#xff08;DLL&#xff09;文件&#xff0c;它在Windows操作系统中扮演着重要的角色。该文件作为系统库文件&#xff0c;通常存放于C:\Windows\System32目录下&#xff08;对于32位系统&#xff09;或C:\Windows\SysWOW64目录下&#xff08;对于…

移动管家摩托车一键启动系统功能特点

移动管家摩托车一键启动系统具备智能解锁、启动、熄火及防盗等多功能 智能解锁与启动 无需原车钥匙&#xff0c;携带感应器走近摩托车即可自动解锁&#xff0c;按下一键启动按钮即可点火启动摩托车。智能熄火与防盗 摩托车熄火后&#xff0c;系统自动进入防盗模式&#xff0c;…

探索网页组件化:原生JavaScript动态加载HTML与iframe的使用与比较

在网页设计中&#xff0c;将内容作为组件动态加载到页面上是一种提高用户体验和页面性能的有效手段。本文将详细介绍两种实现动态内容加载的方法&#xff1a;使用原生JavaScript动态加载HTML和使用iframe&#xff0c;并对比它们的使用方式和优缺点。 原生JavaScript动态加载HTM…