具体流程如下:
1)hdfs的client创建distributedFilesystem,FSDataOutputStream对象,
2)FSDataOutputStream通过hdfs内置的rpc向namenode发送创建新的文件目录entry的请求,namenode创建entry文件目录;
3)hdfs客户端向将数据写入FSDataOutputStream的成员变量buffer中,在buffer中分解成多个packet报存储,
4)FSDataOutputStream通过hdfs内置的http协议,将buffer中的packet包逐个写入pipeline管道中的第一个datanode中,通过pipeline管道将packet包传递给下一个datanode节点,直到将packet包写入了pipeline中的最后一个datanode;
5)由pipeline管道中的最后一个datanode节点发送ack packet确认,并逐一传递到pipeline的第一个datanode节点,由第一个节点将确认信息发送给FSDataOutputStream;
6.)client收到确认消息后,调用文件输出流FSDataOutputStream的close方法关闭输出流;
7)最后client调用distributedFilesystem的complete方法,通知namenode,写入完成。
hdfs写过程
最新推荐文章于 2023-10-15 09:36:55 发布