概述

客户端将要读取的文件路径发送给namenode,namenode获取文件的元信息(主要是block的存放位置信息)返回给客户端,客户端根据返回的信息找到相应datanode逐个获取文件的block并在客户端本地进行数据追加合并从而获得整个文件

HDFS 读数据原理

 

 

1、Client首先跟namenode通信查询元数据,找到文件块所在的datanode服务器的列表

2、挑选一台datanode(就近原则,然后随机)服务器,请求建立nio-socket流

3、datanode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验)

4、客户端以packet为单位接收,现在本地缓存,然后写入目标文件

 

相关文章: