Hadoop---HDFS读数据流程

在这里插入图片描述

⭐读 操作需要的设备

客户端
NameNode
DataNode

⭐第一步 发送读取请求

  • 客户端:
    打招呼,向NameNode请求想要下载的元数据
    PS:
    (元数据包括被分为了哪些数据块以及数据块的副本在哪个DataNode存放)

⭐第二步 获取元数据

  • NameNode:
    返回文件的元数据,告诉每个数据块的位置

⭐第三步 按块读取数据

客户端通过FSDataInputStream(一个支持分布式读取的数据流)逐个数据块的下载文件

下载有两种方式

  • 第一种:
    可以只使用用一个DataNode,但是数据块只能逐个下载
  • 第二种:
    并行传输,不同数据块可以并行在不同的DataNode中下载,如果某个DataNode故障,客户端会自动切换到其他副本所在的节点,确保读取过程不中断

⭐第四步 最终合并文件

所有数据块下载完成后,客户端将它们按顺序拼接成完整的文件(如ss.avi),返回给用户

关键点

  • HDFS通过将文件切块、多副本存储,实现了高速读取高容错性
  • 客户端会根据节点负载动态选择最优的DataNode,提升效率
  • NameNode不直接参与数据传输,只负责管理元数据,减轻了中心节点的压力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值