首页 > 电脑专区 > 电脑教程 >

hdfs如何实现文件的存储

来源:互联网 2023-02-21 18:58:23 版权归原作者所有,如有侵权,请联系我们

客户端通过调用FileSystem对象的open()来读取希望打开的文件。对于HDFS来说,这个对象是分布式文件系统的一个实例。Hkp办公区 - 实用经验教程分享!

hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

方法/步骤

  • 1

    DistributedFileSystem通过RPC来调用namenode,以确定文件的开头部分的块位置。对于每一块,namenode返回具有该块副本的datanode地址。Hkp办公区 - 实用经验教程分享!

    hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

  • 2

        此外,这些datanode根据他们与client的距离来排序(根据网络集群的拓扑)。如果该client本身就是一个datanode,便从本地datanode中读取。Hkp办公区 - 实用经验教程分享!

    DistributedFileSystem返回一个FSDataInputStream对象给client读取数据,FSDataInputStream转而包装了一个DFSInputStream对象。Hkp办公区 - 实用经验教程分享!

    hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

  • 3

    接着client对这个输入流调用read()。存储着文件开头部分的块的数据节点的地址DFSInputStream随即与这些块最近的datanode相连接。Hkp办公区 - 实用经验教程分享!

    hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

  • 4

    通过在数据流中反复调用read(),数据会从datanode返回client。Hkp办公区 - 实用经验教程分享!

    hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

  • 5

    到达块的末端时,DFSInputStream会关闭与datanode间的联系,然后为下一个块找到最佳的datanode。client端只需要读取一个连续的流,这些对于client来说都是透明的。Hkp办公区 - 实用经验教程分享!

    hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

  • 6

    在读取的时候,如果client与datanode通信时遇到一个错误,那么它就会去尝试对这个块来说下一个最近的块。它也会记住那个故障节点的datanode,以保证不会再对之后的块进行徒劳无益的尝试。Hkp办公区 - 实用经验教程分享!

    hdfs如何实现文件的存储Hkp办公区 - 实用经验教程分享!

  • 6相关内容非法爬取自百度经验
  • 以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Hkp办公区 - 实用经验教程分享!


    标签: 操作系统实现文件

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号