hadoop3.x HDFS写数据流程(废弃)

  1. client通过 FileSystem.create() 向 NameNode 请求上传文件,NameNode 检查文件是否存在、父目录是否存在、是否拥有创建权限等

  2. NameNode 返回是否可以上传

  3. client请求 第一个 block 该传输到 哪些 datanode 服务器上

  4. NameNode 返回 3个DataNode节点:dn1、dn2、dn3

  5. client 通过 FSDataOutputStream.write() 请求 最近 的 dn1 并上传数据,dn1 收到请求会继续调用 dn2,然后 dn2 调用 dn3

  6. 整个通道建立完成,逐级应到客户端

  7. client向 dn1 上传 第一个block(以 packet 为单位),dn1 收到一个packet就会传给 dn2,dn2 传给 dn3

  8. 当一个 block 传输完成之后,client再次请求 NameNode 上传第二个block,重复执行3-7步,直到数据全部写完,客户端调用close() 方法