具体流程如下:
1)hdfs客户端初始化FileSystem,并调用FileSystem的open方法,
2)客户端的FileSystem通过hdaoop内置的rpc,获取文件的block所分布数据节点的信息;
3)FileSystem返回FSDataInputStream对象给hdfs客户端,客户端调用 FSDataInputStream的read方法读取数据;
4)FSDataInputStream读取当前文件所在的最近Datanode的数据,读取到客户端,
5)当前数据块读取完毕后,FSDataInputStream关闭和当前数据节点的连接
,继续读取此文件下一个最近的datanode的数据块,
6)客户端调用FSDataInputStream的close方法关闭FSDataInputStream输入流
7)如果步骤4获取失败,则从离当前获取失败的datanode节点最近的datanode获取当前文件数据块,
8)记录获取文件失败的datanode节点,后续不再获取该节点的数据。
hdfs读过程
最新推荐文章于 2024-08-08 09:30:00 发布