HDFS- 写入文件

HDFS写的过程

  • 第1步客户端发去CreeteFile,目的时获取HDFS文件的输出流,namenode收到请求后会检测路径的合法性,以及权限。原生Hadoop的权限管理不是很完善,工作中用的是CDH(商业版Hadoop)如果检测通过,namenode会为这个文件生成块的元数据信息(比如:1为文件切块2分配块id3分配每个块存在那个datanode上),然后将原属信息封装到输出流中,返回给客户端。
  • 第2,3步 Client拿出输出流之后,采用PipeLine(数据流管道)机制做数据的上传发送,这样设计的目的在于利用每台服务的带宽,最小化推送数据的延时。
    packet是一个64Kb大小的数据包,即客户端在发送文件块时,会在文件块变成一个一个的数据发送。
  • 第4.5步- 每台datanode收到packet,会向上游datanodeack确认,如果接受失败,会进行重发
  • 第6步 当一个文件上传完后,关流。