Hadoop中HDFS的读写流程

在这里插入图片描述
1、客户端通过DistrubutedFileSystem向NameNode发出上传ss.avi文件的申请
2、NameNode检查HDFS是否存在ss.avi如果没有就同意请求
3、客户端会问NameNode有哪些DataNode可以上传我的第一个block块呢
4、NameNode告诉客户端能上传到哪些DataNode
5、客户端这时通过FSDataOutputStream向DataNode1申请传输通道,DataNode1继续把申请传给DataNode2,DataNode2又把申请传到DataNode3
6、三个存储节点收到请求会依次响应,这样客户端与这三个存储节点就建立联系
7、既然有了通信管道,客户端正式上传第一个block到DataNode1节点,block以packet(64kb)为单位放在内存缓冲区,依次传到DataNode2、3,以应答队列形式等待应答

在这里插入图片描述
1、客户端通过DistributedFileSystem向NameNode请求下载ss.avi文件
2、NameNode告诉客户端ss.avi的元数据信息(数据的存储位置)
3、这些元数据包含数据存在那个DataNode的地址,这时会按照Hadoop定义的集群拓扑结构算出到客户端的距离,距离从小到大排序
3、客户端知道距离后,就通过FSDataInputStream去请求最近的DataNode节点的数据
4、DataNode相应请求,FSDataInputStream以read()函数并行的读取第一个block块文件块,读完后关闭流。之后还会并行读取其他距离越来越远的DataNode节点数据,读完后关闭流。最终把所有的block合并成一个完整的文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值