HDFS写数据流程
1.客户端向NameNode发送上传文件的请求,NameNode会检查上传的文件是否存在,路径是否合法。
2.当客户端的上传请求通过检查后,NameNode会响应客户端允许上传文件。
3.客户端将待上传文件按照默认数据块大小进行分块,然后请求NameNode上传第一个数据块,让NameNode返回数据块存储节点。
4.NameNode返回数据块存储的节点dn1、dn2和dn3,一般设置几个副本,将会返回几个节点。
5.客户端向dn1请求建立数据上传通道,然后dn1调用dn2,dn2调用dn3,将数据通道建立完成。
6.dn1、dn2、dn3逐级响应客户端请求。
7.客户端是以packet为单位上传数据给dn1,然后dn1将packet传给dn2,dn2将packet传给dn3
8.当第一个数据块上传完毕后,开始上传第二个数据块,重复3-7步骤,当所有数据上传完毕后,客户端会告知NameNode数据上传完成。
HDFS读数据流程
1.客户端向NameNode发送下载数据请求,NameNode查找元数据并返回目标文件的元数据信息给客户端。
2.客户端向对应节点发送读取数据请求,由于数据不是存储在一个节点上所以需要向多个有数据的节点发送读取请求,各个节点将数据返回给客户端。