HADOOP-HDFS-读、写数据流程

240 阅读1分钟
HDFS写数据

hdfs写数据.png

1.客户端向namenode请求写入一个数据 (会注明要写在哪个目录,文件的大小,副本的数量,分了几个块)

2.namenode会查看是否存在此目录,如果存在,则会说明可以写入,如果不存在,则会抛出异常

3.请求写入一个块信息

4.namenode返回一个块id,根据请求的副本数量返回你需要写入的机器(datanode1,datanode2......)

5.选择其中最近的一个节点(datanode1)建立连接,计算拓扑节点(多少跳),datanode1和datanode2、datanode3节点建立连接 (这个过程称为PIPELINE)

6.datanode1和datanode2、datanode3响应连接成功

7.请求写入一个数据,当发送第一个节点数据的时候,第一个节点也会给第二个节点发送数据,第二个节点相应给第三个节点发送数据

8.发送完毕,关闭PIPE LINE

9.重复3-8步骤,继续写入下一个块的信息

10.整个文件写入完毕,向namenode汇报,namenode记录元数据

HDFS读数据

hdfs读数据.png 1.客户端请求某个路径下的数据 2.namenode返回这个文件元数据,包括块信息,以及存储的节点 3.客户端请求datanode读取数据(挑选节点最近) 4.读取完毕 5.读取完第一个块以后,如果还要继续读,那么读取第二个块