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

Hadoop架构与核心模块解析

Hadoop的架构是一个分布式系统,旨在高效存储和处理大规模数据。其核心设计包括分层组件,各司其职,协同工作。以下是Hadoop架构的详细解析:


1. 核心模块

Hadoop主要由三个核心模块构成:

  • HDFS(Hadoop Distributed File System):分布式文件系统,负责数据存储。
  • YARN(Yet Another Resource Negotiator):资源管理和作业调度框架。
  • MapReduce:分布式计算模型(在YARN上运行)。

2. HDFS架构

设计目标:高容错性、高吞吐量、支持海量数据存储。

关键组件
  • NameNode(主节点)

    • 管理文件系统元数据(目录结构、文件分块信息、块位置等)。
    • 协调客户端对文件的读写操作。
    • 单点故障问题通过**HA(高可用)**方案解决(如双NameNode + ZooKeeper)。
  • DataNode(从节点)

    • 存储实际数据块(默认每个块128MB/256MB,3副本)。
    • 定期向NameNode发送心跳和块报告。
  • Secondary NameNode

    • 辅助合并NameNode的编辑日志(fsimage + edits),非热备,需与HA区分。
数据读写流程
  • 写入:客户端切分文件→NameNode分配DataNode→流水线写入多副本。
  • 读取:客户端从NameNode获取块位置→直接联系DataNode读取。

3. YARN架构

设计目标:解耦资源管理与作业调度,支持多计算框架(如MapReduce、Spark)。

关键组件
  • ResourceManager(RM)

    • 全局资源调度器,管理集群资源(CPU、内存)。
    • 包含Scheduler(纯调度,不监控任务)和ApplicationsManager(接受作业提交)。
  • NodeManager(NM)

    • 单节点资源代理,监控资源使用并汇报给RM。
    • 启动和管理容器(Container)执行任务。
  • ApplicationMaster(AM)

    • 每个应用(如MapReduce作业)专属,向RM申请资源,协调任务执行。
    • 处理任务失败、重试等容错逻辑。
作业执行流程
  1. 客户端提交作业到RM。
  2. RM分配容器启动AM。
  3. AM向RM申请资源,NM启动容器运行任务(Map/Reduce)。
  4. AM监控任务状态,直到作业完成。

4. MapReduce计算模型

  • Map阶段:分布式处理输入数据,生成键值对。
  • Shuffle & Sort:按Key排序并分发到Reduce节点。
  • Reduce阶段:聚合中间结果,生成最终输出。

5. 辅助组件与生态系统

  • Hadoop Common:提供基础库和工具(如RPC、序列化)。
  • 高可用与联邦
    • HDFS HA:双NameNode + ZooKeeper实现故障切换。
    • HDFS Federation:多个NameNode分治命名空间,扩展元数据容量。
  • 生态系统工具
    • ZooKeeper:协调分布式服务(如HA)。
    • HBaseHiveSpark等:基于Hadoop构建的数据处理工具。

6. 核心特性

  • 容错性:数据多副本存储、任务自动重试。
  • 可扩展性:支持数千节点集群。
  • 高吞吐:数据本地化计算(移动计算而非数据)。

架构图示

+-------------------+     +-------------------+
|     Client        |     |     Client        |
+-------------------+     +-------------------+|                       || Submit Job            | Read/Writev                       v
+-------------------+     +-------------------+
|   ResourceManager |<--->|     NameNode      |
+-------------------+     +-------------------+|                       || Allocates Resources   | Manages Metadatav                       v
+-------------------+     +-------------------+
|  NodeManager      |     |    DataNode       |
|  (Containers)     |     |  (Data Blocks)    |
+-------------------+     +-------------------+|| Runsv
+-------------------+
| ApplicationMaster  |
| (MapReduce/Spark)  |
+-------------------+

总结

Hadoop通过分层架构实现了存储(HDFS)、资源管理(YARN)与计算(MapReduce等)的分离,兼具高扩展性和容错性。其生态系统丰富,支持多样化的大数据处理场景,成为大数据领域的基石技术。

http://www.xdnf.cn/news/648613.html

相关文章:

  • 【每日渲美学】3ds Max橱柜材质教程:厨房高光烤漆、木纹、亚克力、亚光板材渲染优化指南
  • 洪水危险性评价与风险防控全攻略:从HEC-RAS数值模拟到ArcGIS水文分析,一键式自动化工具实战,助力防洪减灾与应急管理
  • 探索数据结构之顺序表:从入门到精通
  • 「读书报告」Spark实时大数据分析
  • 数据结构-图的应用,实现环形校验和拓扑排序
  • redis五种数据结构详解(java实现对应的案例)
  • 高阶数据结构——哈希表的实现
  • Elasticsearch 节点角色详解及协调节点请求策略
  • FFmpeg 4.3 H265 二十二.2,在网络环境RTSP中,断线下如何处理
  • Oracle NLS_LANG 常见问题
  • sqli-labs第二十八关——Trick with ‘union select‘
  • Flink Checkpoint SavePoint 深度剖析与工程实践
  • 在Spring Boot中实现Kafka动态反序列化:针对多主题的灵活数据处理
  • 网络安全-等级保护(等保) 3-2-2 GB/T 28449-2019 第7章 现场测评活动/第8章 报告编制活动
  • JVM GC 分类与原理深度解析
  • 10:图像传参+UI界面互传
  • JAVA Apache POI实战:从基础Excel导出入门到高级功能拓展
  • 网络安全全知识图谱:威胁、防护、管理与发展趋势详解
  • 二、网络安全常见编码及算法-(2)
  • 联邦学习与数据隐私保护之间的联系
  • 《Stable Diffusion 3.0企业级落地指南》——技术赋能与商业价值的深度融合实践
  • 数字电子技术基础(六十四)——只读存储器
  • mysql主从复制搭建
  • Swagger与go-zero框架生成和展示API文档详解
  • 《软件工程》第 12 章 - 软件测试
  • 【LangChain表达式语言(LCEL)应用实践】
  • 【控制理论】#1 控制系统与传递函数
  • 深入解析Spring Boot与Redis集成:高效缓存与性能优化实践
  • 游戏引擎学习第313天:回到 Z 层级的工作
  • 基于本地模型+多级校验设计的高效缓存,有效节省token数量(有点鸡肋doge)。