HDFS上传文件的过程

本文详细介绍了HDFS文件上传的过程,包括客户端与NameNode的权限检查、文件切片、建立Pipeline及数据传输的确认机制。在上传过程中,客户端先将文件按block大小切片,再将block切割为package进行逐个传输,通过DataNode间的pipeline确保数据可靠性。最后,客户端通知NameNode文件上传完成,NameNode更新元数据。
摘要由CSDN通过智能技术生成

hdfs上传文件的过程:

hadoop fs -put a.txt /dir 为例
1、客户端向服务器发起上传请求(用rpc协议)
2、namenode收到请求后会进行权限检查:(1)看是否有操作权限(2)父目录是否存在
3、namenode给客户端反馈是否可以上传的标记

4、客户端会将要上传的文件按照设置的block大小进行切片,假如是切3片,blk1、blk2、blk3。

5、客户端向NameNode请求上传第一个block:blk1
6、NameNode收到上传block请求后,根据副本放置策略和主机的优秀程度选出三台最优主机{node1,node3,node5},
7、NameNode将三台主机返回给客户端

8、客户端和最前面的主机node1建立pipeline,node1和node3建立pipeline,node3和node5建立pipeline
9、客户端开始传输第一个block数据,传输数据的单位是package(64K),这里面是考虑到网络传输性能,客户端上传block时会再次切片,将block切成多个64KB大小的package,一个个的上传
10、node收到一个package就会缓存datanode,然后传给第二台,第二台缓存后传给第三台,直到传到最后一台。形成一个从客户端到最后一台主机的管道。
11、hdfs会产生一个应答队列,最后一台缓存结束后给他上一台一个ack应答,应答与第十步方向相反,直到第一台应答客户端。
12、客户端判断应答队列中的ack是否完整,如果完整,则判断此次package发送成功,然后继续发第二

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值