hdfs 读流程

1、client 调用filesystem的open 与nn进行rpc 通信,返回该文件的部分或全部block列表也就返回fsdatainputstream 对象
2、client 调用fsdatainputstream 对象的read 方法去与第一个块的最近的dn进行读取,读取完后会check 假如ok 就关闭与dn通信,假如读取失败,会记录dn+block 信息。下次就不会从这个节点读取。那么机会从第二个节点读取,然后去与第二个块的最近 dn 进行读取,依次类推。
假如当block 列表全部读取完,文件还没读取完结束,就调用filesystem从nn 获取下一批次的block列表
3、client 调用 fsdatainputstream 对象close方法,关闭输入流

猜你喜欢

转载自blog.51cto.com/15084467/2592963