Hadoop之HDFS分布式文件系统读写流程详解

1、名词解释:

       NameNode:

               ①、整个文件系统的管理节点。维护着整个文件系统的文件目录,文件/目录的元信息和每个文件对应的数据块列表。接收用户的操作请求。
               ②、文件包括:
                              fsimage:元数据镜像文件。存储某一段NameNode内存元数据信息。
                              edits:擦偶走日志文件。
                              fstime:保存最近一次的checkpoint的时间。
       DataNode:

               ①、DataNode根据客户端的请求对文件系统执行读写操作。
               ②、它们还根据NameNode的指令执行诸如块的创建,删除和复制的操作。
       Block:

               一般用户数据存储在HDFS的文件中。文件系统中的文件将会分成一个或多个段和/或存储在各个数据节点中。这些文件段被称为块。换句话说,HDFS可以读取或写入的最小数据量称为块。默认块是128MB,dfs.block.size可以根据需要进行更改。

2、数据写入流程:


图析:

  1. 客户端向NameNode发送文件上传申请。
  2. NameNode返回Block存储DataNode地址等信息。
  3. 客户端写入文件到DataNode中。
  4. 当客户端写入一份数据之后,DataNode之间会异步的进行Block复制。
  5. 当最后面的DataNode上写完Block后,都会发送一个最终确认信息给前一个DataNode。
  6. DataNode反馈给客户端,数据写入完毕。
  7. 客户端向NameNode发送最终的Block确认信息。

3、数据读取流程:


图析:

  1. 客户端发送读取数据的请求给NameNode。
  2. NameNode反馈数据的DataNode存储地址及副本存储地址。
  3. 客户端直接在DataNode上读取数据。

4、总结:

  • 简单的根据自己的理解画了一些HDFS的读写流程,如有不对,望大神指出。
  • 了解原理,使我们更加深刻的理解HDFS设计。
  • 入门新手,请大神多多指点指点。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值