HDFS读取和写入数据过程的原理

本文详细介绍了HDFS中文件的写入和读取过程。文件写入涉及客户端client与NameNode、DataNode之间的交互,包括建立pipeline、数据分块传输及确认应答等步骤。文件读取则涵盖客户端从NameNode获取Block位置、选择最近DataNode读取、并行读取及合成完整文件等流程。
摘要由CSDN通过智能技术生成

文件的写入过程

这里的FSDatainputStream改成outputstream

第一步:客户client 发送文件上传的请求给NameNode,NameNode去检查目标文件是否存在,父目录是否存在,返回是否上传

第二步:接受指令 , 给NameNode发送Block1可以传输到datanode的那些服务器上

第三步:NameNode根据当前配置和机架感知原理来进行分配,如返回datanode的地址:A1 A6 B6

第四步:client客户请求三台中其中一台A1上传数据(本质上是一个RPC的一个调用,建立pipeline) ,A1收到请求会调用A6 ,A6会传给 B6 ,将整个pipeline建立完成,后逐级返回给client

第五步:client客户开始上传第一个Block到A1,执行流水线复制,以packet为单位(默认64k) ,A1收到第一个block会传给A6 ,A6传给B6 ,A每传一个packet会放入一个应答队列等待应答

第六步:数据被分割成一个个packet在pipeline上依次传输,在pipeline的反方向上,逐个发送ack,最后由pipeline中的第一个datanode中的A1把数据包发送个client客户

第七步:关闭写入流

第八步:当第一个block写完之后,客户请求namenode 上传第二个block到服

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值