HDFS读、写数据操作

HDSF读数据

​编辑流程步骤

HDFS写数据

流程步骤 


HDSF读数据

流程步骤

  1. 客户端向namenode发送请求,确定block在datanode上的位置。

  2. namenode接收到请求后会判断是否有读数据的权限,再根据情况来返回部分或者全部的block列表且返回datanode地址。

  3. 这些返回的datanode地址,会根据网络拓扑关系得出datanode和客户端的距离,然后进行排序。

  4. 客户端会选择靠前的datanode来读取数据,如果客户端本身就是datanode,那么将从本地直接来获取数据。

  5. 当读完数据列表后,若文件读取还没有结束,客户端会继续向namenode获取下一个block列表和datanode地址,直到所有数据读取完毕。

  6. 最后将读取的数据进行排序,形成最终文件。

HDFS写数据

流程步骤 

  1. 首先客户端向namenode发送写数据的请求,namenode接收到请求,需要判断是否有权限和目标文件是否存在,返回客户端是否可以上传,

  2. 接着客户端会向namenode询问block传输到哪些datanode上,namenode根据副本机制(一般默认为3副本策略)、网络拓扑关系、机架感知原理来进行分配。

  3. 客户端请求第一台上传数据,第一台收到请求继续调用第二台,以此类推,形成一个管道,后逐级返回客户端。

  4. 此时客户端向第一台上传block块,以64k的包为单位,第一台传给第二台,以此类推

  5. 数据被分割成数据包在管道上依次传输,在反方向上,逐个发送ack校验,最终由第一个datanode将ack发送给客户端

  6. 当一个block块传输完毕后,客户端会再向namenode请求下一个block的存放位置,直到所有的块传输完毕。

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值