HDFS的读取流程

HDFS的读取流程

今天我们来说一下HDFS的读取流程是什么样的,首先我们来看一张图片
HDFS的读取流程
这里我们可以清楚的看到HDFS的读取流程共分以下几步:
第一步:客户端向NN申请要读取的文件的block块的位置信息列表
第二步:NN根据情况向客户端返回全部或者一部分block块所在DN的位置信息列表,这个列表是经过排序以后返回的,排序的规则有以下两种:首先根据机架感知原理,距离越靠近客户端的排名越靠前;其次,根据NN与DN之间的心跳机制,汇报超时的DN地址的排名会靠后
第三步:客户端会根据读取到的block位置信息列表调用FSDataInputStream的父类DataInputStream的read方法来并行读取数据,如果读取过程中出现错误,则客户端会向NN报告,NN会将另一个包含该block块的位置信息发送给客户端继续读取。
第四步:每接收完成一个block块都会进行checksum校验,等到数据都接收完成以后,合并成最终的文件。
第五步:释放连接资源