您的位置 首页 java

七步搞懂HDFS读流程

总流程

数据读取请求是由HDFS、NameNode、DataNode共同来完成服务的。下图描述了Hadoop中的文件读取操作。

步骤

  1. 客户端通过调用FileSystem对象的open()方法发起读取请求,它的分布式实现类型是DistributedFileSystem,其负责终端用户代码与Hadoop分布式文件系统交互。
  2. 这个对象使用RPC连接到Namenode,并获取元数据信息,例如文件的块的位置。
  3. 为了响应这个元数据请求,将返回具有该块副本的DataNodes的地址。
  4. 一旦接收到DataNode的地址,就会返回一个FSDataInputStream类型的对象给客户端。FSDataInputStream包含DFSInputStream,它负责处理与DataNode和NameNode的交互。在上图中的步骤4中,客户端调用read()方法,使DFSInputStream与第一个DataNode建立连接,并与文件的第一个数据块建立连接。
  5. 数据以流的形式被读取,客户端反复调用read()方法。这个read()操作的过程一直持续到把块数据读取完。
  6. 一旦一个块数据读取完毕,DFSInputStream就会关闭连接,并继续寻找下一个区块的下一个DataNode。
  7. 一旦客户端完成了读取,它就会调用一个close()方法。

文章来源:智云一二三科技

文章标题:七步搞懂HDFS读流程

文章地址:https://www.zhihuclub.com/185822.shtml

关于作者: 智云科技

热门文章

网站地图