HDFS读流程

HDFS读流程

1
2
3
4
5
[hadoop@hadoop001 ~]$ hdfs dfs -cat  /1.log
20/05/12 09:51:19 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... \
using builtin-java classes where applicable
ruozedata
[hadoop@hadoop001 ~]$

HDFS读流程图

读取流程对用户操作是无感知的

1.Client调用FileSystem的open(filePath)方法,与NN进行RPC通信,
返回该文件的部分或者全部的block列表
也就是返回【FSDataInputStream】对象

2.Client调用【FSDataInputStream】对象的read方法
去与第一个块的最近的DN进行读取,读取完成后,会check,假如ok,就关闭与DN通信。
假如读取失败,会记录DN+block信息,下次就不会从这个节点读取。那么就从第二个节点读取。

然后去与第二个块的最近的DN进行读取,以此类推。

假如当block列表全部读取完成,文件还没读取结束,就调用FileSystem从nn获取下一批次的block列表。

3.Client调用【FSDataInputStream】对象close方法,关闭输入流。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2017-2021 WANG Qi
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信