在HDFS中读取文件,客户端首先会与NameNode建立连接,获取目标文件的所有数据块信息以及每个数据块所在的DataNode位置信息。

客户端会根据一定的策略(目前尚未考虑数据节点的相对位置)从每个数据块对应的DataNode集合中选择一个节点建立连接,并开始读取数据。数据以数据包的形式传输到客户端。当读取完一个数据块后,客户端会断开与当前DataNode的连接,并选择下一个数据块对应的DataNode,重复上述过程,直到读取完所有需要的数据。