hdfs读流程

先来一张图展示hdfs读流程  hsdf -dfs  -ls /

1.client端通过FileSystem.open(path)方法,和namenode通过rpc进行通信,namenode校验路径是否存在,用户是否有权限

2.验证完成后,返回文件的部分或者全部的block列表(其实就是返回FSDataInputStream对象)

3.client调用FSDataInputStream对象的read方法,与第一个块block所在的最近的datanode进行通信,read块内容,读取完成后,会校验,假如成功,会关闭与当前的datanode的通信。

4.然后接着与第二个快block所在的最近的datanode进行通信,read块内容,读取完成后,校验成功,会关闭与datanode通信。

5.因为FileSystem.open(path)返回的block列表是一批一批的,假如当前block列表读完,文件还没有结束,就会继续读取下一批次的block列表。重复执行2、3步骤。

6.当文件读完之后,client会调用FSDataInputStream.close(),关闭输入流。hdfs读流程结束。

猜你喜欢

转载自blog.csdn.net/u010506876/article/details/83044601
今日推荐