hdfs读写流程

  • 写文件流程
    (简单)
    1、客户端向namenode发起写请求,并提交文件信息
    2、namenode根据集群情况对文件规划并返回信息给客户端
    3、客户端根据namenode返回的块列表信息,切割文件,请求最近的DataNode上传数据,DataNode收到请求依次调用后续DataNode建立通信管道,向管道中写数据,以packet为单位校验
    4、所有Block都传输完毕后,关闭输出流并告诉NameNode传输完毕
    (详细)
    1、客户端向NameNode发出写文件请求
    2、检查是否已存在文件、检查权限。若通过检查,直接先将操作写入EditLog,并返回输出流对象。 
    3、client端按128MB的块切分文件
    4、client将NameNode返回的分配的可写的DataNode列表和Data数据一同发送给最近的第一个DataNode节点,此后client端和NameNode分配的多个DataNode构成pipeline管道,client端向输出流对象中写数据。client每向第一个DataNode写入一个packet,这个packet便会直接在pipeline里传给第二个、第三个…DataNode。
    5、每个DataNode写完一个块后,会返回确认信息
    6、写完数据,关闭输出流。
    7、发送完成信号给NameNode
    
  • 读文件流程
    1.客户端向NameNode发起读请求
    2.namenade查询元数据,返回块列表信息
    3.客户端就近请求datanode,建立socket流
    4.datanode发送数据,以packet为单位来校验
    5.客户端将接收到的数据写入目标文件中,后面的block块append到目标文件中形成完整文件
    6.关闭流
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值