HDFS读写流程

1.HDFS写流程

1)客户端发起写文件 /usr/ss.avi请求

客户端的DFS(distributed file system)向namenode发起写文件的请求,namenode需要检查目标文件是否存在,是否有权限,上层文件是否存在等。

2)namenode返回可以上传文件

3)客户端请求上传第一个块(block)

客户端按照块大小切分,请求上传第一个块,namenode将返回存储块的节点列表信息

4)namenode返回datenode信息,分别是dn1,dn2,dn3节点

5)客户端FSDataOutputStream与dn1建立block连接,dn1与dn2建立通讯连接,dn2与dn3建立通讯连接

6)dn1,dn2,dn3依次返回客户端响应

7)客户端读取block信息,缓存到本地,并且以package为最小单位进行传输,上传到dn1后,dn1传给dn2,dn2传给dn3

dn1每传完一个package会放入一个等待应对的队列

8)当第一个block上传完成后,会通知namenode,然后请求上传第二个块,重复步骤3-8

2.HDFS读流程

1)客户端发送读取文件/usr/ss.avi的请求

2)namenode返回元数据信息

3)就近原则,随机原则请求读取数据,并与dn1建立连接

4)读取文件,缓存到本地,并以package为单位上传给客户端,完成读取。

爱人不亲,反其仁;治人不治,反其智;礼人不答,反其敬;行有不得,反求诸己
原文地址:https://www.cnblogs.com/lina-2015/p/14143705.html