hdfs读流程
[hadoop@hadoop001 hadoop]$ bin/hdfs dfs -cat /examples/output1/part-r-00000
19/07/07 20:09:47 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
a 3
b 2
c 3
ruozedata 2
www.ruozedata.com 1
- Client通过FileSystem.open(filePath)方法,与NN节点进行【rpc】协议通信,校验权限是否存在,假如都ok,返回该文件的部分或全部的block的列表(包含各个block块的分布在DN地址的列表),也就是返回【FSDataInputStream】对象;
- Clinet调用FSDataInputStream.read方法
a.与第一个块的最近的DN进行read,读取完成后,会check,假如ok,会关闭与当前的DN的通信;假如失败会记录块的这个副本+DN信息,下次就不会从这读取。那么就去该块的第二个DN的地址读取。
b.然后读取第二个块,如第一个
c.假如b