简单明了搞懂HDFS读写数据流程

本文详细介绍了HDFS的写数据和读数据流程。在写数据时,客户端通过DistributedFileSystem向NameNode请求上传文件,NameNode返回DataNode节点,客户端按照就近原则将Block逐级传输至DataNode,并确保数据的副本安全。读数据时,客户端请求NameNode获取文件所在的DataNode地址,然后从选定的DataNode读取数据并缓存到本地。
摘要由CSDN通过智能技术生成

HDFS读写数据流程

1.HDFS写数据流

在这里插入图片描述

1.客户端通过DistributedFileSystem 向NameNode发送上传文件的请求,NameNode响应请求,然后客户端请求发送第一个Block(默认是128M)请求返回DataNode节点。

2.NameNode接受请求后会返回三个DataNode节点,(返回三个节点是因为HdFS默认保存三个副本并不是只有三个节点)客户端会通过FSDataOutoutStream发送到最近的DateNode节点(就近原则),然后DataNode1会找到另外两个节点奖通信道路建立。

3.DataNode会逐级应答客户端告诉客户端通信通道建立成功。客户端开始往dn1上传第一个Block(先从磁盘读取数据放到一个本地内存缓存),以Packet(每个Packet的大小为64k)为单位,dn1收到一个Packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答。

4.客户端里有两个队列,一个待发送队列,一个应答队列。待发送的队列发送过数据后会将发送过的数据移到应答队列里,在得到DateNode的应答后才会将应答队列里的数据移除队列,标志着发送成功。

5.当一个Block传输完成之后,客户端再次请求NameNode上传第二个Block的服务器。

6.如果在传输过程中有一台DateNode 挂掉了,那么另外两台DataNode会重新建立通道进行传输。在传

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值