HDFS的读取和写入

文件的写入过程HDFS的读取和写入

1、客户端将待写入的文件信息上传给namenode
2、namenode检测要上传的文件
3、将是否可上传的信息返回给客户端
4、client将待上传的文件进行切块,然后上传blk1
5、namenode根据集群中现存的快信息和机架感知,选出可上传的主机(假设时datanode1和datanode2和datanode3)
6、namenode返回datanode列表(dn1,dn2,dn3)
7、client和datanode之间建立pipline,datanode与datanode之间建立pipline
8、client向dadanode传递数据(传递的单位:packet:64K)
9、datanode将packet信息进行缓存
10、上传结束后datanode向datanode发送应答,datanode向客户端(client)发送应答,说明第一块block已上传完成。

文件的读取过程

HDFS的读取和写入
1、client向namenode发送请求要下载的文件信息
2、namenode检查每个datanode中的block信息,检查每一个block所对应的主机列表,最后挑选出距离客户端最近的每个block的主机列表
3、namenode将block主机列表返回给client
4、client和每一个block所在的datanode建立pipline
5、client开始从datanode中进行数据读取(读取每个block的信息),读取单位:packet(64K)
6、client将每个block进行合并,合并成一个完整的文件