hdfs 读写删除流程

时间:2024-03-07 19:17:33

hdfs 的写流程:
1,申请上传文件, 判断请求合不合法(上传路径有没有存在与你有没有上传权限)
2,返回 datanode 列表(每一个block重新会选出的datanode),以三个为例(首先离Client 最近的一个server)
3,与server建立数据通道,同时 server 向server2,server2向server3
4,client 将文件切分成多个Packet,并且使用队列"data queue"管理这些 Packet
5,以pipeline的形式将Packet(64K)写入到replicas之中,客户端会写入到server之中,server接到replicas一边落盘,一边传输server1
6,最后一个DateNode 存储后会返回一个 ack packet, 在 pipline里面传递给客户端,客户端会在队列中移除对应的Packet

hdfs 读流程:
1,读取完列表DateNode后,文件还没有结束,客户端会继续向NameNode回去下一个block列表
2,读取完一个block都会进行checksum验证,如果验证不通过,客户端会通知NameNode,然后再向下一个拥有block拷贝的datanode 继续读
3,当文件最后一个块也读玩,datanode 会连接namenode 告知关闭文件
hdfs 删除流程:
1,先在NameNode上执行节点名字的删除
2,当namenode 执行delete方法时候,它只标记需要被删除的block
3,当保存这些数据的datanode向namenode做心跳的时候,在心跳应答里面namenode 会向datanode发出指令,然后进行删除
4,所以在执行delete方法一段时间后才进行删除