HDFS读、写数据流程(图解)以及元数据的checkpoint机制

一、HDFS概述

HDFS集群由NameNode,DataNode,SecondaryNameNode构成。
NameNode:接受用户请求。存储元数据(描述文件的数据,如文件名、文件大小、目录名、文件创建时间等)


DataNode:负责管理用户的文件数据块(block),通过心跳机制汇报给NameNode。
           (1)文件默认会按照每128M切分为block块存储在DataNode上,每个block块默认会有三个副本存放在不同的DataNode上
           (2)DataNode会定期向NameNode汇报自身所保存的文件block块信息


SecondaryNameNode:主要负责辅助NameNode,定期合并fsimage(快照文件)和edits(日志文件),并同步一份给NameNode

二、元数据的checkpoint机制(NameNode与DataNode的联系)

 

三、HDFS写数据流程

宏观:

 

微观: 

 

HDFS写数据流程

1.客户端使用rpc通信框架向NameNode发送请求,NameNode接收并处理用户的请求。
2.NameNode审核用户文件的操作权限,文件路径,磁盘空间是否可用,审核通过后,NameNode会返回成功状态给DFS(分布式文件系统)
3.如果DFS接收到成功的状态,会创建一个FSDataoutputStream的对象给客户端使用
4.客户端向NameNode获取文件存储在HDFS中所需要的所有DataNode节点
5.NameNode对客户端划分的block块分配好所有的DataNode
6.客户端通过机架感知与最近的DataNode建立联系,将block块划分为2048个packet进行发送,直到所有的packet发送完毕后,则当前的block块传输完毕,开始传输下一个block块中的packet
7.DataNode之间会形成pipeline通道传输这些packet
8.传输完毕后发送确认值给客户端
9.当最后一个block中的最后一个packet传输完毕后,释放FSDataoutputStream对象,关闭DataNode之间的pipeline通道,至此,写数据完成。

四、HDFS读数据流程  

 

HDFS读数据流程

1.使用HDFS提供的client,向远程的NameNode发起RPC请求
2.namenode会视情况返回文件的部分block块信息列表或者全部block,对于每个block,namenode都会返回该block副本的DataNode地址
3.client会选取离最近的DataNode读取block块
4.建立socket流,DataNode发送数据,以packet的单位接收,先在本地缓存,然后写入目标文件。读取完block,关闭当前的datanode连接,再寻找下一个block最佳的datanode。
5.读取完block后且文件没有读取完,client继续向namenode获取下一批block块
6.后面的block块相对于append到前面的block块,最后合成最终需要的文件
7.读取一个block都会进行checksum验证。如果读取DataNode出现错误,client会通知NameNode,然后再从下一个拥有block的DataNode继续读

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

openGauss学习笔记-259 openGauss性能调优-使用Plan Hint进行调优-指定不使用全局计划缓存的Hint

文章目录 openGauss学习笔记-259 openGauss性能调优-使用Plan Hint进行调优-指定不使用全局计划缓存的Hint259.1 功能描述259.2 语法格式259.3 示例 openGauss学习笔记-259 openGauss性能调优-使用Plan Hint进行调优-指定不使用全局计划缓存的Hint 259.1 功能描述 全局计划缓…

Linux内核之原子操作atomic_t用法实例(三十九)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

MYSQL 8.0版本修改用户密码(知道登录密码)和Sqlyog错误码2058一案

今天准备使用sqlyog连接一下我Linux上面的mysql数据库,然后就报如下错误 有一个简单的办法就是修改密码为password就完事!然后我就开始查找如何修改密码! 如果是需要解决Sqlyog错误码2058的话,执行以下命令,但是注意root对应host是不是loca…

【目标检测】-入门知识

1、回归与分类问题 回归问题是指给定输入变量(特征)和一个连续的输出变量(标签),建立一个函数来预测输出变量的值。换句话说,回归问题的目标是预测一个连续的输出值,例如预测房价、股票价格、销售额等。回归问题通常使用回归分析技术,例如线性回归、多项式回归、决策树…

【优选算法专栏】专题十八:BFS解决拓扑排序(一)

本专栏内容为:算法学习专栏,分为优选算法专栏,贪心算法专栏,动态规划专栏以及递归,搜索与回溯算法专栏四部分。 通过本专栏的深入学习,你可以了解并掌握算法。 💓博主csdn个人主页:小…

【第七篇】使用BurpSuite进行主动、被动扫描和主动、被动爬虫

文章目录 前言主动扫描被动扫描主动爬虫被动爬虫前言 Burp Scanner 既可以用作全自动扫描仪,也可以用作增强手动测试工作流程的强大手段。 扫描网站涉及两个阶段: 抓取内容和功能: Burp Scanner 首先在目标站点周围导航,密切反映真实用户的行为。它对站点的结构和内容以及…

STM32F4XX软件I2C驱动MPU6050

MPU6050 一、简介 MPU6050是一款6轴姿态传感器,可以测量芯片自身X、Y、Z轴的加速度、角速度参数,通过数据融合,可进一步得到姿态角,常应用于平衡车、飞行器等需要检测自身姿态的场景。 3轴加速度计(Accelerometer&…

电子档案数据迁移什么意思?电子档案数据迁移流程

电子档案数据迁移是指将现有的电子档案数据从一个系统或存储设备迁移到另一个系统或存储设备的过程。这个过程可以包括将数据从旧的存储介质转移到新的存储介质,或将数据从一个系统迁移到另一个系统。电子档案数据迁移通常是为了更好地管理和保护档案数据&#xff0…

推荐一款搜索文件夹中内容的软件--FileSeek

介绍一个在文件夹中搜索文件内容的软件FileSeek 软件中一些功能较为清晰,不懂的话翻一下就行,我觉得使用其普通功能就可以解决大多数问题,就是在文件夹中查找文件中的内容。这帮助我们进行内容筛选有很大的帮助。例如上诉案例就是在ctf中我们…

【Flutter】三个Channel(Android-java / Ios-swift)

Channel 实现与原生通信 【1】MethodChannel flutter MethodChannel官方文档 通过MethodChannel来传递数据,调用方法 案例 分别调用Android和Ios原生的获取电量的方法 Flutter端 实例一个MethodChannel, 唯一标识name,定义方法名称get…

linux大文件IO

在Linux中处理大文件(通常指大小超过2GB的文件)时,需要使用特定的系统调用和标志,以确保程序能够正确地处理大文件的读写。这主要是因为在32位系统上,传统的文件偏移量和文件大小使用off_t类型表示,它通常是…

RabbitMQ的自动应答和手动应答,解决重试死循环

RabbitMQ的自动应答和手动应答,解决重试死循环 1.应答模式 RabbitMQ 中的消息应答模式主要包括两种:自动应答(Automatic Acknowledgement)和手动应答(Manual Acknowledgement)。 1、自动应答:…

ctfshow web入门 文件上传web162--web167

web162 session文件包含条件竞争 直接包含不传马了 我们上传的文件如果不符合要求,就会被删除,导致成功上传无法访问,没有用。但是如果我们上传的速度比服务器删的速度快,就可以了。 上传.user.ini GIF89a auto_append_file/tmp/…

医院预约系统微信小程序APP前后端

医院预约系统具体功能介绍:展示信息、可以注册和登录, 预约(包含各个科室的预约,可以预约每个各个医生),就诊引导包含预约的具体信息,包含就诊时间、就诊科室、就诊医生以及就诊人信息、和支付状…

Unity之Unity面试题(三)

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之Unity面试题(三) TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取…

2025考研数学汤家凤基础班百度网盘视频+强化班PDF讲义持续更新

如果25考研想全程跟张宇老师,可以参考下面这个表格来使用资料: 2025考研数学全程课:链接:https://pan.baidu.com/s/1e6wA4OiH_EJpZPXPxoHYwg 提取码:om45 考研数学 考研数学无非就是汤家凤老师,张宇老师…

政安晨:【深度学习神经网络基础】(五)—— 霍普菲尔德神经网络和玻尔兹曼机

目录 简述 霍普菲尔德神经网络 训练霍普菲尔德神经网络 Hopfield-Tank神经网络 玻尔兹曼机 总之 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处&am…

Linux安装Oracle11g(无图形界面下的静默安装)

Oracle11g安装文档-Linux静默安装 环境准备安装数据库配置监听器创建数据库测试打开防火墙 环境准备 创建组和用户 [rootlocalhost ~]# groupadd oinstall #创建oinstall组 [rootlocalhost ~]# groupadd dba  #创建dba组 [rootlocalhost ~]# useradd -g oinstall -G dba -m…

【快捷部署】016_Ollama(CPU only版)

📣【快捷部署系列】016期信息 编号选型版本操作系统部署形式部署模式复检时间016Ollama(CPU only)latestCentOS 7.XDocker单机2024-04-10 注意事项: 1、目前镜像及大模型下载速度尚可,但由于容量较大,所以…

K8S:常用资源对象操作

文章目录 一、使用Replication Controller(RC)、Replica Set(RS) 管理Pod1 Replication Controller(RC)2 Replication Set(RS) 二、Deployment的使用1 创建2 滚动升级3 回滚Deployment三、 Pod 自动扩缩容HPA1 使用kubectl autosc…