一.HDFS写文件流程图
二.HDFS写文件流程
(1)调用客户端的对象DISTRIBUTEDFILESYSTEM()的CREATE方法;
(2)DISTRIBUTEDFILESYSTEM会发起对NAMENODE的一个RPC连接,请求创建一个文件,。NAMENODE会执行各种各样的检查,确保要创建的文件不存在,并且客户端有创建文件的权限。如果检查通过,NAMENODE会创建一个文件(在EDITS中),否则创建失败,客户端抛异常IOEXCEPTION。
(3)DISTRIBUTEDFILESYSTEM返回一个FSDATAOUTPUTSTREAM对象给客户端用于写数据。FSDATAOUTPUTSTREAM封装了一个DFSOUTPUTSTREAM对象负责客户端跟DATANODE以及NAMENODE的通信。
(4)FSDATAOUTPUTSTREAM将数据切分,并请求NAMENODE返回一个DATANODE列表来存储当前BLOCK副本。然后这些DATANODE会生成一个数据流管道,我们假设副本集参数被设置为3,那么这个数据流管道中就有三个DATANODE节点。
(5)首先FSOUTPUTSTREAM会将文件块向数据流管道中的第一个DATANODE节点写数据,第一个DATANODE接收文件块后会把文件块写向数据流管道中的第二个节点,同理,第二个节点接收保存数据块后会将数据块写向数据流管道中的第三个DATANODE节点。
(6)当第三各DATANODE节点数
对HDFS的读流程和写流程的理解
最新推荐文章于 2024-04-10 08:00:00 发布
本文详细解析了HDFS的文件写入和读取流程。在写文件时,客户端通过DISTRIBUTEDFILESYSTEM发起创建文件请求,经过NAMENODE的权限检查后,建立数据流管道,将数据分块并逐级复制到多个DATANODE。在读文件时,客户端通过FILESYSTEM对象打开文件,NAMENODE提供DATANODE地址,FSDATAINPUTSTREAM管理读取,按距离优先顺序从DATANODE读取数据块,直至文件读取完毕。
摘要由CSDN通过智能技术生成