HDFS文件的读写流程

Hadoop

HDFS的读写文件流程

HDFS写文件流程

  1. 客户端通过Distributed FileSystem模块向NameNode请求上传文件(hadoop fs -put 文件名 文件路径 )

    1. 判断该客户端是否有写入权限
    2. NameNode检查目标文件是否已存在,父目录是否存在。
  2. NameNode返回是否可以上传(不满足上述直接报错)。

  3. 客户端请求第一个 Block上传到哪几个DataNode服务器上。

    1. 根据副本放置策略,负载均衡,机架感知以及网络拓扑图获取.

      副本放置策略:

      ​ 第一副本:放置在上传文件的DataNode上;如果是集群外提交,则随机挑选一台磁盘不太慢,CPU不太忙的节点上;
      ​ 第二副本:放置在于第一个副本不同的机架节点上;
      ​ 第三副本:与第二个副本相同机架的不同节点上;
      ​ 如果还有更多的副本,则随机放在节点中。

  4. NameNode返回3个DataNode节点,假设分别为dn1、dn2、dn3。

  5. 数据逻辑切块

    物理切块:真实的切分,将200M切分为128M+72M。两个块会分别存储
    逻辑切块:可以理解为切分前的准备,每个块128M,计算出需要切分成几个块(切块规划)

  6. 客户端通过FSDataOutputStream模块请求dn1上传数据(与dn1请求链接),dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。

  7. dn1、dn2、dn3逐级应答客户端。

  8. 客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet(默认64k)为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。

    此时开始物理切片

  9. 当一个Block传输完成之后,上传通道关闭,客户端再次请求NameNode上传第二个Block的服务器。(重复执行3-7步)

  10. 所有数据上传成功后,会向客户端返回上传结果,客户端向NameNode返回信息,告知数据上传成功。

  11. 上传失败的处理

    1. 文件上传过程中如果有一个节点的块上传失败,那么hdfs会立即进行一次重试,如果重试还是失败,则会将失败的节点从pipeline中剔除,并将失败的节点报告给namenode
    2. hdfs可以忍受的极限是至少有一个节点上传成功,如果3个节点都失败,则会重新向namenode申请3个节点,重新构建数据通道,最终是保证至少有一份上传成功,其他的副本会在集群空闲的时候进行异步复制

HDFS读文件流程

  1. 客户端向Namenode请求下载文件(hadoop fs -get 文件 )

  2. Namenode接受到客户端的请求

    1. 判断该客户是否有写入的权限
    2. 判断该文件是否存在
  3. client(客户端)根据Namenode返回Datanode队列,并行的从这些Datanode中读取block块的数据

    1. 就近原则返回DataNode
  4. 上述block块内容读取完毕后,会继续访问Namenode剩余部分或者全部的block块的地址,然后并行读取,(以packet为单位来做校验),直至所有的block读取完成

    第一个块下载成功之后会生成一个 crc文件,和上传时候的.meta文件进行完整度校验

    校验内容:起始偏移量和末尾偏移量之间的内容
    校验通过则认为第一个块下载成功

  5. 按照block的信息(编号等),将这些block块组合成一个完整文件,至此HDFS读数据完成

  6. 下载出现异常

    1. 数据块的某一个节点读取不到数据的时候会向namenode进行汇报,namenode就会标记这个节点可能是问题节点(以后下载时,就会将这个 问题节点返回的优先度下降),接着客户端继续读取这个块的其他节点
    2. 块下载失败会有3次尝试重新下载的机会,如果块过多的,NameNode会分批次返回块信息

补充:HDFS文件块大小

HDFS块的大小是指在HDFS中存储一个文件时,将文件分成多少个块,并且每个块的大小是多少。在HDFS中,块的大小通常是64MB或128MB。这个大小是可以配置的,但需要注意的是,块的大小不应该设置得太小,因为块的数量会增加,而且设置太小,会增加寻址时间,程序一直在找块的开始位置.但是,块的大小也不应该设置得太大,因为这会增加数据丢失的风险,如果一个块出现故障,整个块都需要重新传输,这会导致数据恢复的时间变长,而且从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。

总结:HDFS块的大小设置主要取决于磁盘传输速率。

  1. HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数( hdfs-site.xml文件中的dfs.blocksize)来规定,默认大小在Hadoop2.x/3.x版本中是128M,1.x版本中是64M。

  2. 如果在系统运行过程中修改了dfs.blocksize属性的值,那么这个修改只对新文件起作用,对于已经存在的文件不会产生影响。

  3. 块大小的计算方式

    1. 如果寻址时间约为10ms,即查找到目标block的时间为10ms。
    2. 寻址时间为传输时间的1%时,则为最佳状态,因此,传输时间=10ms/0.01=1000ms=1s
    3. 而目前磁盘的传输速率普遍为100MB/s。,所以block大小=1s*100MB/s=100MB

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

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

相关文章

2、Spring6 入门

1、环境要求 JDK:Java17(Spring6要求JDK最低版本是Java17) Maven:3.6 Spring:6.0.2 2、构建模块 2.1 构建父模块spring6 点击“Create” 2.2 构建子模块spring-first 点击 Create 完成. 3、程序开发 3.1 引入依…

python面试题合集(一)

python技术面试题 1、Python中的幂运算 在python中幂运算是由两个 **星号运算的,实例如下: >>> a 2 ** 2 >>> a 4我们可以看到2的平方输出结果为4。 那么 ^指的是什么呢?我们用代码进行演示: >>>…

全新纠错码将量子计算提效10倍!

上周,来自两个研究小组的最新模拟报告称,一类新兴的量子纠错码的效率比目前的“黄金标准”(即表面码)高出一个数量级。 量子纠错码的工作原理都是将大量容易出错的量子比特转换成更小的“受保护”量子比特,这些量子比特…

vue3+ts+tinynce富文本编辑器+htmlDocx+file-saver 配合实现word下载

vue3 请下载html-docx-js-typescript,否则会报错类型问题 //报告导出word import * as htmlDocx from "html-docx-js-typescript";//ts-ignore import { saveAs } from file-saver// 下载文件, const downloadFile (row)> {try {const co…

Power View

界面 切换可视化效果 对于已经上传到透视表的数据,选择power view,形成表格后。

基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密

原文作者: Robert Haynes 原文链接: 基础知识回顾:借助 SSL/TLS 和 NGINX 进行 Web 流量加密 NGINX 唯一中文官方社区 ,尽在 nginx.org.cn 网络攻击者肆无忌惮、作恶多端,几乎每天都有网络入侵、数据窃取或勒索软件攻击…

RISC-V Linux系统kernel制作

文章目录 1、下载2、编译 1、下载 Linux 官网地址:https://www.kernel.org $ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.181.tar.xz $ tar xvf linux-5.10.181.tar.xz $ cd linux-5.10.1812、编译 安装依赖 $ sudo apt-get install -y flex bison bui…

dockerfile 命令详解(三)

CMD 和 ENTRYPOINT 区别 CMD #指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代 ENTRYPOINT #指定这个容器启动的时候要运行的命令,可以追加命令 FROM #基础镜像,一切从这里开始构建 MAINTAINER #…

【广州华锐互动】VR党建多媒体互动展厅:随时随地开展党史教育

随着科技的不断发展,虚拟现实(VR)技术已经逐渐渗透到各个领域,其中党建教育尤为受益。为了更好地传承红色基因,弘扬党的优良传统,广州华锐互动推出了VR党建多媒体互动展厅,让广大党员干部和人民群众通过现代科技手段&a…

数据分析基础-数据可视化学习笔记03-可视化的符号与表示-图形符号学

概念 图型符号学(Cartographic Symbolization)是地图学领域中的一个重要概念,涉及到如何使用不同的符号、颜色、图案和标记来在地图上表示地理信息和数据。图型符号学旨在传达地理信息,使得地图能够清晰、有效地传达各种空间数据…

c++读取和存储文件,对文件操作

#include<bits/stdc.h> using namespace std; int aa[100];//全局变量数组&#xff0c;用来接收我们从文件中读取的数据。 void zhuanhua(string a){//这个函数的作用是转化我们读取的数字&#xff0c;由于我们读取文件时//是按行读取&#xff0c;就是一下读取一行&…

山西电力市场日前价格预测【2023-09-02】

日前价格预测 预测明日&#xff08;2023-09-02&#xff09;山西电力市场全天平均日前电价为304.03元/MWh。其中&#xff0c;最高日前电价为373.15元/MWh&#xff0c;预计出现在19: 15。最低日前电价为191.94元/MWh&#xff0c;预计出现在12: 30。 价差方向预测 1&#xff1a; 实…

c++ opencv将彩色图像按连通域区分

要将彩色图像按连通域区分&#xff0c;您可以使用 OpenCV 中的 cv::connectedComponents 函数。 下面是一个简单的示例代码&#xff0c;说明如何使用 cv::connectedComponents 函数来检测并标记图像中的连通域&#xff1a; #include <opencv2/opencv.hpp> #include <…

深度学习6:自然语言处理-Natural language processing | NLP

目录 NLP 为什么重要&#xff1f; 什么是自然语言处理 – NLP NLP 的2大核心任务 自然语言理解 – NLU|NLI 自然语言生成 – NLG NLP(自然语言处理) 的5个难点 NLP 的4个典型应用 NLP 的 2 种途径、3 个核心步骤 总结 自然语言处理 NLP 为什么重要&#xff1f; “语言…

人员位置管理,点亮矿山安全之路

矿山作为一个高危行业&#xff0c;安全问题一直备受关注。人员定位置管理是现代矿山安全管理的重要一环&#xff0c;可以帮助企业更好地实现对人员的实时监控和管理。因此&#xff0c;矿山人员位置管理系统对于矿山安全生产和管理非常重要&#xff0c;可以帮助减少安全事故的发…

【微服务部署】03-健康检查

文章目录 1. 探针集成实现高可用1.1 LivenessProbe1.2 ReadinessProbe1.3 StartupProbe 2. 健康检查看板2.1 组件包 1. 探针集成实现高可用 LivenessReadinessStartup 1.1 LivenessProbe 判断服务是否存活结束“非存活”状态服务根据重启策略决定是否重启服务 1.2 Readines…

【数据结构】栈---C语言版(详解!!!)

文章目录 &#x1f438;一、栈的概念及结构&#x1f344;1、栈的概念定义&#x1f344;2、动图演示&#x1f332;入栈&#x1f332;出栈&#x1f332;整体过程 &#x1f438;二、栈的实现&#x1f438;三、数组结构栈详解&#x1f34e;创建栈的结构⭕接口1&#xff1a;定义结构…

使用远程桌面软件改善工作与生活的平衡

在当今高度互联的世界中&#xff0c;我们的工作和个人生活之间的界限变得越来越模糊。在本文中&#xff0c;我们将探讨像 Splashtop 这样的远程桌面工具如何成为实现和谐工作与生活平衡不可或缺的一部分。 在当今的背景下理解工作与生活的平衡 工作与生活的平衡不仅仅是一个时…

财报解读:成功通过“期中考”,创维多元布局产生多大协同效应?

2023年以来&#xff0c;在下游市场需求仍在复苏以及存量市场竞争加剧的背景之下&#xff0c;消费电子行业的发展受到不小挑战。不过&#xff0c;从中期业绩来看&#xff0c;可以发现一些企业还是具备一定的风险抵御能力&#xff0c;发展韧性显著&#xff0c;创维就是其中一员。…

6400万美元:苹果与SpaceX达成合作协议,推进苹果 SOS 卫星服务

根据最新披露的文件&#xff0c;苹果卫星服务提供商Globalstar近期与马斯克旗下的SpaceX达成一项重要合作协议&#xff0c;向SpaceX支付了6400万美元&#xff0c;用于在2023-2025年期间发射卫星&#xff0c;以进一步扩展苹果iPhone系列的SOS卫星服务。 这项卫星服务的主要目的是…