Hadoop读写机制

本文介绍了Hadoop的读写原理。读数据时,首先请求Namenode获取元数据,然后按照块信息顺序读取并缓存。写数据过程中,会生成校验和文件,先向Namenode申请DataNode,按距离分配节点并建立通道,以Packet为单位将数据写入,最终落地到磁盘。

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

读数据原理

1. 先去请求namenode读数据

2. 查询元数据信息并返回查询的文件的块个数,块的存储位置

3. 根据第二步返回的信息进行块的信息读取,先就近读取再随机读取,根据块的id从小到大依次读取,读取的时候会启动一个输入流FSDATAINPUTSTREAM

4. 会把先读取到的块的信息写入到缓存中,后续读取的块信息依次追加

写数据原理

写入数据的时候会产生一个校验和文件(checksum   512字节) 读数据的时候会进行checksum验证,验证通过证明读取的块信息是没有损坏的

1. namenode发送写数据的请求

2. namenode会查询自己的元数据信息,返回一个可以上传的相应

3. 客户端向namenode请求分配datanode

4. namenode向客户端返回空闲的datanode节点(按空间和距离进行计算(同节点、同机架、其他))和一个输出流进行文件写入

5. 客户端先找到最近的节点建立通道,再有最近的节点依次向剩余的节点之间相互建立通道

6. datanode依次返回响应,返回通道建立完成

7. 客户端进行数据写入,以packet为单位进行写入,先写入到缓冲区中,从缓冲区中依次向另外的datanode节点进行发送,也是先发送到缓冲区中,最终需要落地到磁盘中

8. 文件块写完毕会依次向前返回响应,客户端接收到返回响应的时候就认为这个块写完了,进行下一个块的写入循环上面的步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值