HDFS读取数据的过程:
1、客户端通过分布式文件系统向NameNode请求下载文件,请求包括要读取的路径和偏移量。
2、NameNode通过查询元数据,找到文件所在的DataNode地址,响应文件是否存在,并返回目标文件的元数据。
3、客户端通过就近原则选一台DataNode服务器请求读取数据。
4、DataNode开始传输给客户端,从磁盘里读取数据,以packet为单位作校验。
5、客户端以Packet为单位接收,先在本地缓存,然后合并写入目标文件。
读数据过程图:
HDFS写数据过程:
1、客户端通过分布式文件系统模块向NameNode请求上传文件,NameNode检查目标文件是否已经存在,在父目录是否存在。
2、NameNode响应是否可以上传文件。
3、客户端请求第一个Block上传到哪个DataNode服务器上
4、然后NameNode通过就近原则返回三个DataNode节点给客户端。
5、客户端通过FSDataOutputSTream模块建流,请求第一个DataNode上传数据,第一个DataNode收到请求后会继续调用第二个DataNode,然后第二个DataNode调用第三个DataNode,将这个Block通信管道建立完成,三个Data