HDFS读写

1、HDFS写流程 

1)client跟NN通信请求写文件,NN检查目标文件是否存在,父目录是否存在

2)NN返回是否可以写

3)client对文件按块(block)切分。请求第一个block该传输到哪些DN服务器上。

4)NN返回可以写的DN的服务器。

5)client请求一个台DN写数据(RPC调用,建立pipeline),第一个DN收到请求会继续调用第二个DN,然后第二个调用第三个DN,将整个pipeline建立完成,逐级返回客户端。

6)client开始传输block,以packet为单位传输, 以chunk为单位校验。第一个DN收到第一个packet就会传给第二台,第二台传给第三台;第一台每传一个packet就会放入一个应答队列等待应答。

7)当一个block传输完成时,client再次请求NN上传第二个block的服务器。

2、HDFS读流程

1)跟NN通信查询元数据(block所在的DN的节点),找到文件块所在的DN的服务器。

2)挑选一台DN(就近原则,然后随机)服务器,请求建立socket流。

3)DN开始发送数据(从磁盘里读取数据放入流,以packet为单位做校验)

4)客户端以packet为单位接收,现在本地缓存,然后写入目标文件中,后面的block块就相当于append到前面的block块,最后合成最终需要的文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值