HDFS写文件流程

HDFS写文件

写文件(create) 过程

  1. hdfs客户端通过DistributedFileSystem模块调用create() 来新建文件,对namenode创建一个RPC调用,请求在系统的命名空间中新建一个文件。
  2. namenode检查是否有此目录,以及是否客户有权限,通过则创建新文件,并向客户端返回一个FSDataOutPutStream对象
  3. 客户端请求上传第一个block到哪几个DataNode上,namenode返回三个节点
  4. 客户端通过FSDataOutPutStream对象请求dn1上传数据,然后逐级调用,逐级应答,建立完成通信管道
  5. 客户端开始上传第一个block,以Packet(64k)形式传输数据,datanode1收到一个就会传给下一个,每传一个就会放入一个应答队列等待应答
  6. 当一个block传输完成后,再传输其他的,重复执行3-5步

机架感知(副本存储节点选择)

  1. 第一个副本在Client所处的节点上,若客户端在集群外,随机选一个;
  2. 第二个副本在另一个机架的随机一个节点
  3. 第三个副本在第二个副本所在机架的随机节点
上一篇:hdfs基本操作


下一篇:HDFS