Hadoop:HDFS读写数据的过程。

本文详细描述了HDFS(HadoopDistributedFileSystem)中数据的读取和写入过程,包括客户端与NameNode交互获取文件元数据,DataNode之间的数据传输以及Packet作为基本传输单位的角色。在读取过程中,客户端从NameNode获取文件位置,然后从DataNode读取并缓存数据。而在写入时,客户端通过NameNode协调,建立DataNode之间的Block传输管道,以Packet为单位进行多副本写入确保数据可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HDFS读取数据的过程:

1、客户端通过分布式文件系统向NameNode请求下载文件,请求包括要读取的路径和偏移量。

2、NameNode通过查询元数据,找到文件所在的DataNode地址,响应文件是否存在,并返回目标文件的元数据。

3、客户端通过就近原则选一台DataNode服务器请求读取数据。

4、DataNode开始传输给客户端,从磁盘里读取数据,以packet为单位作校验。

5、客户端以Packet为单位接收,先在本地缓存,然后合并写入目标文件。

读数据过程图:

HDFS读数据流程

 

HDFS写数据过程:

1、客户端通过分布式文件系统模块向NameNode请求上传文件,NameNode检查目标文件是否已经存在,在父目录是否存在。

2、NameNode响应是否可以上传文件。

3、客户端请求第一个Block上传到哪个DataNode服务器上

4、然后NameNode通过就近原则返回三个DataNode节点给客户端。

5、客户端通过FSDataOutputSTream模块建流,请求第一个DataNode上传数据,第一个DataNode收到请求后会继续调用第二个DataNode,然后第二个DataNode调用第三个DataNode,将这个Block通信管道建立完成,三个Data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值