Hadoop(四):HDFS读数据的基本流程

HDFS读数据的流程

  1. shell发送下载请求

  2. NameNode检测文件系统,查找a的元数据(block和block所在的位置信息)

  3. 返回元数据给shell,返回的元数据会排序,排序规则:

    • 拓扑距离近排前面。

    • 返回心跳健康排前面。

  4. shell按照排序,向各个节点请求下载block。

    • 底层上本质是建立Socket Stream(FSDataInputStream),重复的调用父类DataInputStream的read方法,直到这个块上的数据读取完毕

  5. 把下载的文件合并起来。

  6. 读取完一个block都会进行checksum验证,如果读取DataNode时出现错误,客户端会通知NameNode,然后再从下一个拥有该block副本的DataNode继续读。

猜你喜欢

转载自www.cnblogs.com/renzhongpei/p/12590333.html