HDFS写入流程(文字版)

  1. 客户端发送请求, 连接NameNode, 请求写入操作.
  2. NameNode接收到请求后, 判断用户有无写入权限, 如果没有, 报错.
  3. 如果有写入权限, 判断写入路径下有无这个文件, 如果有, 报错, 如果没有, 通知客户端可以写入.
  4. 客户端接收到可以写入的信息后, 开始对文件进行切分, 行程多个block块.
  5. 客户端请求NameNode, 第一个block应该存储在哪些DataNode中.
  6. NameNode根据机架感知, 网络拓扑图关系, 副本机制, 来寻找适合的DataNode, 形成地址列表, 然后将这些地址列表返回给客户端.
  7. 客户端从地址列表中, 拿到第一个DataNode地址与之连接.
  8. 当第一个DataNode连接成功后, 让第一个DataNode连接第二个DataNode地址, 然后第二个DataNode连接第三个DataNode地址, 形成一个通信管道.
  9. 客户端开始进行写入数据, 数据将以数据包(64K)的形式来发送数据, 当第一个DataNode接收到数据后, 然后将数据发送给第二个DataNode, 第二个DataNode接收到以后发送给第三个DataNode.
  10. 当第一个DataNode接收到数据后, 会建立一个应答响应队列, 每个节点接收到数据后, 都会向应答队列反向报告, 最终所以都报告完后, 将应答队列返回客户端.
    1.  客户端 -> DataNode1 -> DataNode2 -> DataNode3 (传输)
    2.  DataNode3 -> DataNode2 -> DataNode1 -> 客户端 (应答响应)
  11. 不断的发送, 不断的应答响应, 直到第一个block发送完成, 重新向NameNode请求第二个block的存储地址列表, 然后不断的重复发送,应答响应操作, 直到所有block传输完毕.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值