HDFS存储原理与MapReduce计算模型

HDFS存储原理

1. 架构设计
  • 主从架构 :包含一个NameNode(主节点)和多个DataNode(从节点)。
    • NameNode:管理元数据(文件目录结构、文件块映射、块位置信息),不存储实际数据。
    • DataNode:存储实际数据块,负责处理客户端的读写请求,并定期向NameNode发送心跳和块报告。
2. 数据分块与副本机制
  • 分块存储:文件被分割为固定大小的块(默认128MB或256MB),便于并行处理和存储优化。
  • 多副本冗余 :每个块默认保存3个副本,分布策略为:
    • 第1个副本:写入客户端所在节点(若为集群外则随机选节点)。
    • 第2个副本:同一机架的另一节点。
    • 第3个副本:不同机架的节点。
  • 容错性:通过副本机制和机架感知策略,保障数据可靠性与读取效率。
3. 读写流程
  • 写入流程

    1. 客户端向NameNode申请写入,NameNode分配DataNode列表。
    2. 客户端将数据块写入第一个DataNode,后者通过管道依次复制到其他副本节点。
    3. 写入成功后,NameNode更新元数据。
  • 读取流程

    1. 客户端向NameNode获取文件块的位置信息。
    2. 直接从最近的DataNode(基于网络拓扑)读取数据块,支持并发读取多个块。
4. 容错与高可用
  • DataNode故障:NameNode通过心跳检测移除失效节点,并触发副本复制。
  • NameNode HA(Hadoop 2.x+):通过主备NameNode和JournalNode实现故障自动切换,解决单点问题。

MapReduce计算模型

1. 核心阶段
  • Map阶段

    • 输入数据被划分为分片(Split),每个分片由一个Map任务处理。
    • Map任务输出中间键值对(Key-Value),可本地聚合(Combiner)减少数据传输。
  • Shuffle与Sort阶段

    • 分区(Partitioning):按Key的哈希值分配到不同Reduce任务。
    • 排序与合并:Map端对输出排序,Reduce端合并相同Key的数据。
  • Reduce阶段

    • 对Shuffle后的数据执行用户定义的Reduce逻辑,生成最终结果。
2. 执行流程
  1. 作业提交:客户端提交任务到ResourceManager(YARN架构)。
  2. 任务调度:ApplicationMaster分配Map/Reduce任务到NodeManager。
  3. 数据本地化优化:优先调度Map任务到存储数据的节点,减少网络IO。
  4. 结果输出:Reduce结果写入HDFS或其他存储系统。
3. 容错机制
  • 任务重试:失败的Map/Reduce任务会被重新调度到其他节点。
  • 推测执行:对慢节点启动备份任务,防止个别任务拖慢整体进度。
4. 适用场景
  • 离线批处理:适合大规模数据并行计算(如日志分析、ETL)。
  • 局限性:不适合低延迟(实时)场景,迭代计算效率较低(需多次读写HDFS)。

总结

  • HDFS:通过分块、多副本和机架感知实现高吞吐、高可靠存储。
  • MapReduce:以分而治之思想,通过Map、Shuffle/Sort、Reduce三阶段处理海量数据,结合容错机制保障稳定性。两者共同构成Hadoop生态的核心计算与存储基础。
相关推荐
isfox3 小时前
Hadoop简介:分布式系统的基石与核心架构详解
hadoop
Lx3526 小时前
大规模Hadoop集群管理:运维经验与监控策略
大数据·hadoop
TTBIGDATA6 小时前
【Ambari监控】Ambari-Metrics 的分支研究
大数据·数据库·hadoop·ambari·bigtop·edp·hidataplus
IT学长编程6 小时前
计算机毕业设计 基于Hadoop的南昌房价数据分析系统的设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
大数据·hadoop·python·毕业设计·课程设计·毕业论文·豆瓣电影数据可视化分析
奋斗的蛋黄8 小时前
HDFS(Hadoop 分布式文件系统)知识点梳理
大数据·hadoop·hdfs
Lx3521 天前
Hadoop数据处理模式:批处理与流处理结合技巧
大数据·hadoop
皆过客,揽星河1 天前
Linux上安装MySQL8详细教程
android·linux·hadoop·mysql·linux安装mysql·数据库安装·详细教程
core5121 天前
Hive实战(二)
数据仓库·hive·hadoop
奋斗的蛋黄1 天前
大数据与云计算知识点
大数据·hadoop·云计算
计算机编程-吉哥2 天前
大数据毕业设计-基于Python的中文起点网小说数据分析平台(高分计算机毕业设计选题·定制开发·真正大数据)
大数据·hadoop·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目