hdfs写文件流程

eg:client上传150M的数据到hdfs
1.客户端向namenode请求上传数据。是先写到edits文件中,记录操作日志
2.namenode检查连接条件,返回同意连接
3.client端请求上传第一个block(128M),返回dn列表
4.nn返回可用的dn列表dn1,dn2,dn4(dn选择策略:距离/空间;第一个副本优先选择同机架的dn节点,第二个副本考虑安全性要跨机架,第三个副本同机架
5.client端获取dn列表,尝试连接dn1节点(nio),连接成功后,dn1尝试连接dn2,dn2连接dn4,连接成功后,逐级返回给客户端
6.client接收到连接成功信息后,向dn1节点发送第一个block(形式:64k packet),写入到dn1缓存区,dn1节点进行校验(chunk),同时dn1向dn2赋值,流程相同,写入缓存区。
7.只要有一个写入成功就返回给客户端,因为某个节点失败可以通过nn配置的副本数量启动时进行赋值。
8.在请求上传第二个block。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值