HDFS执行流程

本文详细介绍了HDFS的执行流程,包括读取、写入和删除操作。在读取过程中,客户端从NameNode获取文件Block的DataNode地址,依次读取并校验数据。写入时,NameNode分配BlockID,客户端将文件切块并写入DataNode,通过pipeline确保副本数。删除操作则由NameNode记录删除请求,DataNode在心跳响应中接收到删除指令后执行实际删除。

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

执行流程

一、 读取流程(下载)

 

  1. 客户端Client向NameNode发起RPC请求
  2. NameNode在收到请求之后,会先进行校验,例如文件是否存在等
  3. 校验完成之后,会将这个文件所对应的存储Block的节点地址放入一个队列中(文件分的块中,每个块有3个副本,每一次先给客户端一个块的3副本的存储地址。放地址的原因是为了保证hdfs的高吞吐),返回给客户端。
  4. 客户端收到队列之后,从队列中取出这个块对应的地址(3个),从这些地址中选取一个较近(网络距离,所谓最近即响应速度最快的节点)的节点地址来连接并且读取数据。如果客户端本身就是DataNode,那么将从本地直接获取数据
  5. 读取完一个Block之后,校验Block(每一个Block都会对应一个.meta),(checksum验证,即验证读取到的Block大小和声明的Block大小是否一致)如果校验失败,则客户端就会认为这个Block产生损坏,客户端会通知NameNode,然后客户端重新选取地址,重新读取&#x
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值