HDFS数据流-----文件写入

HDFS数据上传大体分为两个阶段,第一阶段是客户端与NameNode交互阶段,第二阶段是客户端与DataNode交互阶段。

1.客户端与NameNode交互阶段

 

流程如下:

假设客户端要上传的文件为A.log(文件大小大于128M),目标目录/log

(1)客户端向NameNode请求上传文件;

(2)NameNode查看自己的目录和文件的属性信息,判断是否是重复目录或文件;

(3)如果判断目录或者文件没有重复,回复客户端可以上传;

(4)客户端请求上传文件A.log的第一个block(blk_1)到HDFS目录/log,且副本数为3;

(5)NameNode根据请求查看DataNode管理信息,返回合理的DataNode地址给客户端。

 

2.客户端与DataNode交互阶段

假设副本数配置为3,NameNode返回给客户端的DataNode为dn1,dn2,dn3。

流程如下:

(1)客户端连接dn1,请求建立传输通道pipeline,并通知dn1还需要将blk_1保存到dn2和dn3;

(2)dn1通知dn2,dn2通知dn3,同时在dn1,dn2,dn3之间建立pipeline;

(3)dn3通知dn2 pipeline建立完成,dn2通知dn1 pipeline建立完成,dn1通知客户端pipeline建立完成,可以传输数据;

(4)客户端将blk_1分为以packet(每个packet 大小为64k)为单位传输给dn1;

(5)dn1收到packet后保存下来,同时将packet传递给dn2,以此类推,dn2传递给dn3;

 

注:后续将进一步完善,不喜勿喷,欢迎大神指点,谢谢。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值