Hadoop三大组件之HDFS(一)

1. HDFS的架构

HDFS(Hadoop Distributed File System)采用主从架构,由一个NameNode(主节点)和多个DataNode(从节点)组成。NameNode负责管理数据块映射信息(如文件名、文件目录、权限、块位置等)并配置副本策略,而DataNode负责存储实际的数据块。Secondary NameNode辅助NameNode进行元数据的检查点操作。

2. HDFS的读写流程

2.1 写流程

  1. 客户端向NameNode发起写请求,提供文件名和大小等信息。
  2. NameNode将文件划分为数据块,记录副本位置并返回给客户端。
  3. 客户端根据位置信息,将数据块发送给对应的DataNode。
  4. DataNode接收数据块后,将其存储到本地磁盘。
  5. 在写入时,DataNode先写入临时文件,完成后转为永久文件。
  6. DataNode定期向NameNode报告数据块信息。

2.2 读流程

  1. 客户端访问NameNode,查询元数据,获得数据块位置列表。
  2. 选择就近的DataNode服务器,建立输入流请求。
  3. DataNode向输入流中写数据,以packet校验。
  4. 关闭输入流。

3. HDFS的优缺点

3.1 优点

  • 高容错:数据块复制存储,节点故障时自动恢复。
  • 高吞吐:并行处理数据块,高效读写和批处理。
  • 适合大文件:将大文件分块存储,适合大规模数据处理。

3.2 缺点

  • 延迟高:不适合低延迟数据访问。
  • 小文件存储不高效:浪费存储空间和元数据开销。

使用场景:大规模数据存储和计算、日志分析。

4. HDFS默认存储块大小

HDFS默认块大小为128MB(2.3版本后),基于最佳传输损耗理论。较大文件块减少寻址时间,提高传输效率。

5. HDFS的心跳机制

DataNode每隔3秒向NameNode发送心跳信号,报告状态和存储信息。如10分钟未收到心跳信号,NameNode认为节点不可用,并重新分配数据块副本。

6. HDFS的负载均衡

HDFS的负载均衡机制确保数据在DataNode上的分布均匀。当DataNode存储利用率过高时,系统自动将数据迁移至空闲的DataNode。通过手动命令或配置参数调整负载均衡策略。

7. Secondary NameNode

Secondary NameNode辅助NameNode进行元数据的检查点操作。定期从NameNode获取fsimage和edits文件,合并生成新的fsimage文件,发送回NameNode,以减小edits文件大小,防止NameNode重启时加载过多日志。


相关推荐
小光学长1 小时前
基于vue框架的防疫科普网站0838x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
极限实验室1 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
飞翔的佩奇1 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
智海观潮2 小时前
Flink CDC支持Oracle RAC架构CDB+PDB模式的实时数据同步吗,可以上生产环境吗
大数据·oracle·flink·flink cdc·数据同步
企企通采购云平台2 小时前
「天元宠物」×企企通,加速数智化升级,“链”接萌宠消费新蓝海
大数据·人工智能·宠物
Apache Flink2 小时前
Flink Forward Asia 2025 主旨演讲精彩回顾
大数据·flink
float_六七3 小时前
SQL六大核心类别全解析
数据库·sql·oracle
泰迪智能科技013 小时前
分享|大数据采集工程师职业技术报考指南
大数据
zskj_zhyl4 小时前
AI健康小屋“15分钟服务圈”:如何重构社区健康生态?
大数据·人工智能·物联网
AllData公司负责人5 小时前
实时开发IDE部署指南
大数据·ide·开源