HDSF的读写流程

HDSF的读写流程

HDFS写数据的流程

如图:
在这里插入图片描述
1.客户端通过Distributed模块向Namenode请求上传文件,Namenode呢?他回去检查这个文件是否存在,还有他的父目录是否存在。如果文件存在,那就到了第二步

2.Namenode返回响应说:可已上传文件。

3.客户端的Distributed模块收到信号后将要传的文件发给NameNode让Namenode来分配他到底存在哪个节点上

4.如图NameNode返回给客户端3个节点,等客户端收到这三个节点的位置之后呢就开始联系这三个哥们

5.客户端的FSDataOutputStream模块建立一个叫block的连接通道去请求第一个节点datanode1,这个节点再去叫他的好朋友datanode2,datanode2再去叫datanode3…将这个管道建立完成

6.三个datanode逐级应答客户端

7.这个时候客户端就可以开始向datanode1以packet为单位传第一个block,datanode1再将数据传给datanode2,2再给3以此类推

8.当这个block传输完成后,客户端会给namenode一个回应说传完了,这时就可以传第二个block了重复执行3-7步
(这是一个文件,一个block的大小是128M。如果文件别这个数字大的话,会传输两次或N次直到传完,如果小于128M的话就是一次)

HDSF读数据的流程

在这里插入图片描述
1.他还是通过客户端的这个哥们(Distributed FileSystem)向namenode发送请求,说他要下载文件,Namenode
会通过查找元数据,找到文件所在的Datanode地址
2.Namenode会就近原则的去寻找一个Datanode服务器,将Datanode服务器的地址给客户端
3.客户端就会根据Namenode传来的服务器地址去寻找这个Datanode服务器,请求读取数据
4.DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以packet为单位来做校验)。
5.客户端以packet为单位接收,先在本地缓存,然后写入目标文件

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值