HDFS读写流程|【大学生博客大赛】

网友投稿 293 2022-11-25

HDFS读写流程|【大学生博客大赛】

一、HDFS读流程1. client端发起RPC,访问远程Namenode2. Namenode首先会查询元数据,找到client端访问文件的存储位置的数据块信息3. Namenode视情况将对应的文件数据块(block)的节点地址全部或部分返回4. client端收到此数据块(block)对应的节点地址5. client端会从队列中取出第一个数据块对应的节点地址,从这些节点地址中选取最近的DataNode进行读取文件6. 读取之后会对这个block进行checksum验证,如验证失败说明数据损坏,client会再次向Namenode发送信息,说明该节点的block损坏,然后从其他节点再次读取数据7. 如验证通过,读取完当前的block后,关闭与当前的DataNode的链接,从队列中取出下一个block的最佳DataNode8. 当将此队列的block读取完毕,且文件读取还没有结束,client端会继续向Namenode请求下一批block地址9. 在文件完全读取后,client端会向Namenode发送完毕的信号,Namenode关闭对应文件10. 读取结束     二、HDFS写流程1. client端发起RPC,访问远程Namenode2. Namenode接收请求后,会检查要创建的文件是否已经存在,创建者是否有权限进行操作,验证通过创建记录,失败即抛出异常3. 验证通过后,Namenode会确定文件大小以及分块的数量,确定对应节点,并在内部以数据队列的形式管理4. client端收到地址后,从队列中依次取出节点地址,依次上传数据,通过管道进行自动备份,保证副本数量5. client端在上传完成第一个数据块后发送完成信息号,再次请求可用DataNode,重复如上写流程6. 客户端在所有数据上传完成后会向Namenode发送完毕信号,Namenode会给client端返回一个关闭文件信号

7.   写入结束

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:深入理解Java设计模式之抽象工厂模式
下一篇:以太坊协议的设计规则及原理解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~