您的位置 首页 大数据运维

客户端向 HDFS 写入数据过程

写数据流程:

1)首先客户端对文件进行切分,切分成数据块,每个数据块默认存储到 3 个节点上

2)在写入数据之前,客户端首先会告诉 NameNode 要写一个文件,此时 NameNode 会增加一个文件,记录这个文件的详细信息,把这个文件放入目录树里面

3)然后开始写数据,因为客户端把文件划分成了很多块,在写第一个数据块时,NameNode先要返回 3 个 DataNode 位置,这样第一个数据块会以一个一个数据包的方式(packet)写入第一个 DataNode,同时数据包也同时会向第二,第三个节点写,形成数据写的流水线,每个 DataNode 写完数据包之后,会返回确认。当第一个数据块写完之后,以同样的方式写下一个数据块。

4)当所有数据块写完之后,它调用 close 关闭写入流,它会通知 NameNode 文件写完了,这时就会关闭 socket,结束数据的写过程。

 

客户端从 HDFS 读数据过程?

读数据流程:
1)客户端首先发送一个 open 请求到 NameNode,获取这个文件所包含数据块,以及每个数据块的存储位置。
2)这些数据块信息返回给客户端之后,它依次按照这个数据块的顺序,读取每一个数据块。
3)第一个数据块在这个节点上面读,第二个数据块在这个节点读,读完之后,按照文件实际数据块的先后位置,显示给用户,整个文件读完之后,就会调用close,关闭输出流就 ok 了

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章