HDFS读写流程

作者: 涓涓自然卷 | 来源:发表于2020-03-02 14:02 被阅读0次

闲暇之余,梳理了一下HDFS的读、写数据流程。

(一)下图是HDFS读数据流程图:
HDFS读数据流程.png
  • 1、客户端向NameNode建立通信发送请求读取某文件,例如:读取/aa/...txt文件。
  • 2、NameNode获取文件的元数据信息(名称空间、block块信息,副本数量),并将目标文件的元信息返回给客户端。

在这里:
①文件名为/aa/...txt,
②每个数据块有3个副本,
③共有BLK_1、BLK_2、BLK_3三个数据块组成,
④BLK_1存储在DN1、DN3、DN4节点上,BLK_2存储在DN1、DN4、DN5节点上,BLK_3存储在DN2、DN3、DN5节点上。

  • 3、客户端选择其中的一个节点(如图去DN1上)去请求读取BLK_1。

这里选择节点遵循就近原则,然后随机。

  • 4、DN1将BLK_1数据传输给客户端。
  • 5、客户端继续选择其中一个节点(如图DN4上)去请求读取BLK_2。
  • 6、DN4将BLK_2数据传输给客户端,客户端将BLK_2数据追加到BLK_1数据后面,这里有个追加的过程。
  • 7、客户端继续选择其中一个节点(例如DN2上)去请求BLK_3。
  • 8、DN2节点将BLK_3数据传输给客户端,客户端将BLK_3数据追加到BLK_2后面,最后合并形成一个文件。
(二)下图是HDFS写数据流程图:
HDFS写数据流程.png
  • 1、客户端与NameNode建立通信,请求上传数据。NameNode检查目标文件是否存在,父目录是否存在。
  • 2、NameNode响应客户端是否可以上传,如图,可以上传。
  • 3、客户端会先对文件进行切分,比如一128M切分成一个BLK块。如图文件大小是300M就会被切分成3个块:两个128M,一个44M。客户端向NameNode请求上传第一个block所需要传输到哪些DN服务器上。
  • 4、NameNode返回DN服务器信息(DN1、DN3、DN4)。

在这里,考虑因素:空间和距离
DataNode选择策略:
①第一个副本先考虑与client最近的(同机架)
②第二个副本再考虑跨机架挑选一个datanode,增加副本可靠性
③第三个副本在第一个副本同机架另外挑选一台datanode存放
配置机架感知,知道哪个datanode放在哪个机架。

  • 5、客户端向DN1请求建立传输通道channel,DN1向DN3请求建立传输通道channel,DN3向DN4请求建立传输通道channel。
  • 6、DN4建立好传输通道后会反向向DN3回应应答成功,同理DN3反向向DN1回应应答成功,DN1反向向客户端回应应答成功,传输通道channel已建立。
  • 7、客户端开始传输BLK数据块(先从磁盘读取数据存储到一个本地内存缓存),以packet为单位(一个packet为64kb),写入数据的时候DataNode会进行数据校验,并不是通过packet为单位校验,而是以chunk为单位校验(512byte),DN1收到第一个packet就会传给DN3,DN3传给DN4;DN1每传一个packet就会放入一个应答队列等待应答。

在这里,block一个上传成功就算成功了,之后NameNode会做一步同步操作。

  • 8、当第一个block上传完成后,客户端再次请求NameNode上传第二个block块。NameNode返回客户端第二个block块可上传的DataNode服务器节点信息。

相关文章

  • 大数据学习十二:HDFS读流程和写流程

    HDFS读写流程相对于HDFS Client而言,所以读流程为FSDataInputStream , 写流程为FS...

  • Hadoop HDFS 数据读写流程分析

    本文转载自《Hadoop HDFS 数据读写流程分析》,该文对Hdfs的读写流程分析之简洁明了,令人叹服。 HDF...

  • Hadoop学习2

    HDFS读写流程 写的流程: MapReduce运行流程 WordCount案例 WordCount程序演示 创建...

  • 大数据技术之HDFS(四)

    HDFS 的 读写流程 4.1 HDFS 写数据流程 4.1.1 剖析文件 写入 (1)客户端通过 Distrib...

  • HDFS MapReduce

    hdfs的读写流程 hdfs写数据 1) 客户端通过DistributedFileSystem模块向namenod...

  • HDFS读写流程

    1、HDFS读流程 1、首先调用FileSystem对象的open()方法,其实获取的是一个Distributed...

  • HDFS读写流程

    (一)HDFS的读流程 读操作对于Client客户端来说是透明操作,感觉就是连续的数据流 1、Client客戶端先...

  • HDFS读写流程

    本文章主题: 写流程 读流程 HDFS遵循一次写入多次读取的原则,因此已经写入文件系统的文件是无法修改的,只能进行...

  • HDFS读写流程

    HDFS写流程写流程图片... 1.客户端通过对DistributedFileSystem对象调用create()...

  • HDFS读写流程

    概述 开始之前先看看其基本属性,HDFS(Hadoop Distributed File System)是GFS的...

网友评论

    本文标题:HDFS读写流程

    本文链接:https://www.haomeiwen.com/subject/qzfmkhtx.html