当前位置: 首页 > news >正文

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生态的核心计算与存储基础。

相关文章:

  • 0基础 Git 代码操作
  • Python实例题:Python打造漏洞扫描器
  • 【Linux 学习计划】-- 冯诺依曼体系 | 操作系统的概念与定位,以及其如何管理软件
  • svn: E155017: Checksum mismatch while updating 校验错误的解决方法
  • whisper相关的开源项目 (asr)
  • leetcode 17. Letter Combinations of a Phone Number
  • Ubuntu 24.04部署安装Honeyd蜜罐
  • 大学之大:浦项科技大学2025.5.25
  • 塔能科技:以多元技术赋能全行业能耗节能转型
  • STM32 输出比较输出PWM控制呼吸灯小实验(2种实现 铁头山羊与江协科技)
  • 掌阅iReader新形态墨水屏Tango发布:科技与美学共舞,开启灵动阅读新体验
  • HTTP请求全链路剖析:请求头、XHR与状态码的实战指南
  • 8.Java 8 日期时间处理:从 Date 的崩溃到 LocalDate 的优雅自救​
  • ADS学习笔记(二) 交流小信号仿真
  • 2025最新智能优化算法:野燕麦优化算法(Animated Oat Optimization Algorithm, AOO),MATLAB代码
  • HTTP协议版本的发展(HTTP/0.9、1.0、1.1、2、3)
  • 黑马点评-分布式锁Lua脚本
  • 进阶-自定义类型(结构体、位段、枚举、联合)
  • Lua基础语法
  • 在Windows平台基于VSCode准备GO的编译环境
  • 我的世界做圆网站/搜狗网站提交入口
  • 做计量检定的网站/百度推广开户费用多少
  • 金属材料网站建设/2022最新时事新闻及点评
  • 企业网站建设市场报价/快速排名优化系统
  • 哪些网站可以做易拉宝/免费制作网站平台
  • 17我们一起做网站/5118大数据平台官网