HDFS
读数据流程
-
原理图:
-
读取过程分析—图示:
-
读取过程分析—描述:
-
1.客户端或者用户通过调用FileSystem对象的open()方法打开需要读取的文件,这对HDFS来说就是常见的一个分布式文件系统的一个读取实例
-
FileSystem通过远程协议调用NameNode确定文件的前几个Block的位置。对于每一个Block,NameNode返回一个含有该Block拷贝的元数据,即文件基本信息;接下来,DataNode按照上文定义的距离值进行排序,如果Client本身就是一个DataNode,那么优先从本地DataNode节点读取数据。HDFS示例做完以上工作后,返回一个FSDataInputStream给客户端,让其从FSDataInputStream中读取数据。FSDataInputStream接着包装一个DFSInputStream,用来管理DataNode和NameNode的I/O
-
NameNode向客户端返回一个包含数据信息的地址,客户端根据地址创建一个FSDataInputStream开始对数据进行读取
-
FSDataInputStream根据开始时存放的前几个Blocks的DataNode的地址&#
-