Hadoop 框架入门:核心架构与工作原理

Hadoop 是一个开源的分布式计算框架,专为处理海量数据(TB/PB 级)设计,具有高容错性、高扩展性和低成本的特点。它的核心是分布式存储分布式计算两大能力,通过集群化部署实现对大规模数据的高效处理。

Hadoop 框架的核心架构

Hadoop 框架主要由以下四个核心模块构成:

1. HDFS(Hadoop Distributed File System)

分布式文件系统,负责海量数据的存储。

  • 架构设计

    • 主从结构:1 个 NameNode(主节点)+ 多个 DataNode(从节点)
    • NameNode:管理文件系统元数据(文件名、路径、权限、块信息等),不存储实际数据
    • DataNode:存储实际数据块(Block),默认块大小为 128MB(可配置)
  • 核心特性

    • 副本机制:默认每个数据块保存 3 个副本,分布在不同节点,保证数据容错性
    • 流式访问:适合一次写入、多次读取的场景,不支持随机修改
    • 横向扩展:可通过增加 DataNode 节点轻松扩展存储容量

2. MapReduce

分布式计算框架,负责海量数据的离线处理。

  • 核心思想:"分而治之"

    • Map 阶段:将大任务拆分为多个小任务,分布式并行处理
    • Reduce 阶段:汇总 Map 阶段的结果,计算最终输出
  • 执行流程

    1. 输入数据被分割成多个 Split(分片)
    2. 每个 Split 由一个 Map 任务处理,生成 <key, value> 键值对
    3. Shuffle 过程:对 Map 输出进行排序、分组
    4. Reduce 任务处理分组后的数据,输出最终结果
  • 适用场景:日志分析、数据统计、数据清洗等离线批量处理任务

3. YARN(Yet Another Resource Negotiator)

资源管理器,负责集群资源(CPU、内存)的统一调度和管理。

  • 核心组件

    • ResourceManager(RM):全局资源管理器,负责资源分配和任务调度
    • NodeManager(NM):运行在每个节点上,负责本节点的资源管理和任务监控
    • ApplicationMaster(AM):每个应用程序的管理者,负责与 RM 协商资源并监控任务
  • 主要功能

    • 统一管理集群资源,提高资源利用率
    • 支持多种计算框架(MapReduce、Spark、Flink 等)共享集群资源
    • 动态资源分配,根据任务需求灵活调整资源

4. Hadoop Common

通用工具库,为其他模块提供基础支持。

  • 包含文件系统、RPC 通信、序列化、配置管理等工具类
  • 提供跨平台的抽象层,适配不同的操作系统和硬件环境

Hadoop 框架的工作流程(示例)

以 "分析网站日志,统计每个页面的访问量" 为例:

  1. 数据存储

    • 网站日志文件上传到 HDFS,被分割成多个 128MB 的数据块
    • 每个数据块在不同 DataNode 上保存 3 个副本
  2. 任务提交

    • 用户提交 MapReduce 作业到 YARN 的 ResourceManager
  3. 资源分配

    • RM 为作业分配第一个容器(Container),启动 ApplicationMaster
    • AM 向 RM 申请更多资源,用于运行 Map 和 Reduce 任务
  4. Map 阶段

    • 每个 Map 任务处理一个数据块,解析日志并输出 <页面 URL, 1> 键值对
  5. Shuffle 阶段

    • 对 Map 输出按页面 URL 分组,相同 URL 的计数累加
  6. Reduce 阶段

    • 每个 Reduce 任务汇总相同 URL 的访问次数,输出 <页面 URL, 总访问量>
  7. 结果输出

    • 最终结果写入 HDFS,用户可通过命令行或其他工具查看

Hadoop 框架的优势

  1. 高容错性:通过数据副本和节点故障自动转移实现
  2. 高扩展性:可通过增加节点线性扩展存储和计算能力
  3. 低成本:支持普通 x86 服务器,无需专用硬件
  4. 适合大数据:高效处理 TB/PB 级数据,远超传统数据库能力
  5. 开源生态:拥有丰富的周边工具(Hive、HBase、Spark 等),形成完整数据处理体系

Hadoop 框架的应用场景

  • 日志分析:用户行为分析、系统监控日志处理
  • 数据仓库:构建企业级数据存储和分析平台
  • 机器学习:训练大规模数据集的机器学习模型
  • 搜索引擎:处理网页爬取数据,构建索引
  • 科学计算:处理天文、气象等领域的海量观测数据

Hadoop 框架的设计理念是 "移动计算而非移动数据",通过将计算任务分发到数据所在节点,大幅减少数据传输开销,这也是它能高效处理海量数据的核心原因。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值