hadoop中hdfs上传数据的基本流程

hadoop中hdfs上传数据的基本流程

1.首先hdfs客户端请求上传一个文件(假设为a.txt(300M)),这条请求会发送给namenode服务器,由namenode服务器校验,发送该请求的客户端是否有权限上传文件,以及确认datanode是否有足够的空间来存储这个文件以及它的副本。
2.如果这两个条件都能满足,namenode服务器则会发送响应OK的消息给客户端。
3.hdfs客户端接收到OK的响应过后,会向namenode请求上传第一块数据。
4.namenode服务器接收到请求后,会返回原数据信息(blk_0 0 128M lx01 lx02 lx03)给客户端。
5.hdfs客户端接收到元数据信息过后会去尝试和返回的多台机器建立连接通道。
6.各datanode节点如果能和hdfs客户端以及其他datanode节点连通,则会返回OK给相邻的datanode节点,并最终返回给hdfs客户端一个OK的消息,不一定要所有节点都能连通才返回OK,当有一个或者一个以上的节点能够连通时,就会返回OK给hdfs客户端。
7.当hdfs客户端接收到OK的消息过后,就要开始按照namenode返回元数据信息上传已经分配好的数据块(以300M,默认blocksize128M为例,a.txt将被分为3块上传,第一块大小为128M,第二块大小为128M,第三块44M)给各个datanode节点,一块一块地(第一次统一上传第一块,第二次统一上传第二块,以此类推…)上传给各个datanode节点,这样就将要上传的数据及其副本上传到hdfs的各个datanode节点了。
8.补充:各个datanode节点会设置一个心跳时间(假设为3秒),检测数据块是否上传成功,当上传失败时,重新传输或者进行其他处理,以保证数据能够顺利,完整地存储到datanode当中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值