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为单位上传给客户端,完成读取。

 

posted @ 2020-12-16 14:29  小西瓜糖  阅读(89)  评论(0编辑  收藏  举报