分布式文件系统 从设计到实现 - Replication(四)代

2019-05-19  本文已影响0人  何文鑫

<< Previous 分布式文件系统 从设计到实现 - Replication(三)
Next >> 分布式文件系统 从设计到实现 - 附1:hdfs写入关键代码调用层级示意

废话不多说,直接上代码。

client创建namenode通信代理: 向namenode申请新建文件,副本数为2,返回fileId: 向namenode申请新建块,namenode返回LocatedBlock,内含datanode列表: 与第一个datanode建立socket通信: 创建用于数据传输校验的DataChecksum: 创建pipeline,读取ack: 读取本地数据: 计算本地数据校验值: 创建容纳数据的packet: 将数据拆分为多个chunk写入packet: packet写入pipeline,读取ack: 发送close消息拆掉pipeline,关闭输入输出流: 告知namenode块写入完成: 运行结果:

完整代码见github/gist

Next >> 分布式文件系统 从设计到实现 - 附1:hdfs写入关键代码调用层级示意
<< Previous 分布式文件系统 从设计到实现 - Replication(三)

上一篇下一篇

猜你喜欢

热点阅读