HDFS写入数据流程

1 发送请求 ,连接namenode,请示写入数据。

2. namenode接受写入请求后,

首先判断当前这个操作用户是否拥有写入权限,如果不具有直接报错。

如果有写入权限,接着判断要写入的目录下是否存在这个文件,如果存在,报错,如果不存再,则通过datanode可以上传

3. 客户端对文件进行分操作形成block块

4 先请求 第一个block,存储到哪些地方

5.根据机架感应原理,网络拓扑关系,副本机制,找到相应可以上传的datanode连接列表,返回给客户端。

6.从接受列表中选择第一台datanode与之连接,建立pipeline(管道)

7.当连接第一台,接着让第一台与第二台连接,然后第二台与第三台连接形成一条pepeline管道

8.client客户端,通过package(数据包 64kB)的形式发送数据,当第一台接受完数据后,然后将数据转发给第二台,当第二台接受完数据后,将数据转发给第三台,

9.当第一个请求后,搭建一个反向应答队列,当每个节点都将数据包接受后,反向给予应答反应(ACk确认机制)

10.此时client开始源源不断的发送数据即可,当第一个block发送完成后,此时client重新向namenode发送请求,获取第二个block应该存储到哪个datanode中。。接着开始从第5步不断执行,直到所有的block完全写入。

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值