写数据流程

HDFS写数据流程
第一步.跟namenode通信请求(RPC)上传文件,namenode中的元信息检查目标文件是否已经存在,父目录是否存在

第二步.namenode返回后是否可以上传

第三步.客户端再向namenode请求第一个block该传输到那些datanode上

第四步.namenode会返回三台datanode client 请求 3 台 DataNode 中的一台 A 上传数据(本质上是一个 RPC 调用,建立 pipeline),A 收到请求会继续调用 B,然后 B 调用 C,将整个pipeline 建立完成,后逐级返回 client;
第五步.client开始向A上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位64k大小,每512k会调用一次chuck进行校验,通过后写入buffer缓存中,在写入上传datenode的本地且同时传递给B,每传一个packet会放入一个应答队列等待应答

第六步.当一个block传输完成之后,client再次请求namenode上传第二个block服务器,直到全部传输完毕

第七步.如果传输过程中失败,并且不是全部失败,有一个已经传输成功,就认为已经传输成功了,之后namenode会做异步同步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值