Hadoop核心组件及其作用概述

Hadoop的核心组件可以概括为"两大基础 "和一个"核心大脑",它们共同构成了分布式数据处理的基石。


核心一:HDFS (Hadoop Distributed File System) - 分布式存储

作用负责存储。它是一个高可靠、高扩展性的分布式文件系统,能将超大规模数据集(TB/PB级)拆分成多个数据块,并分散存储在集群的多个普通服务器上。

关键特点与机制

  • 分块存储:默认将大文件切分为128MB或256MB的固定大小数据块。
  • 多副本冗余:每个数据块会自动创建多个副本(默认3个),存储在不同机器上,防止硬件故障导致数据丢失。
  • 主从架构
    • NameNode(主节点):存储文件的元数据(如文件名、目录结构、数据块位置等),是HDFS的"目录管理员"。
    • DataNode(从节点):在本地磁盘上实际存储数据块,并定期向NameNode报告状态。

举例说明

假设你有一个大小为520MB 的日志文件 website_logs.txt 要存入HDFS(假设块大小为128MB)。

  1. 分块 :HDFS会将其自动切分成5个块:Block-1 (128MB), Block-2 (128MB), Block-3 (128MB), Block-4 (128MB), Block-5 (8MB)。
  2. 存储与备份 :这5个块会被分发到集群中不同的DataNode上。比如,Block-1 会存储在 DataNode-ADataNode-CDataNode-F 上(共3个副本)。
  3. 管理NameNode 会记录下 website_logs.txt 由这5个块组成,以及每个块的所有副本存放在哪些DataNode上。当客户端需要读取文件时,只需询问NameNode,即可找到最近的副本位置。

核心二:MapReduce - 分布式计算模型(编程框架)

作用负责计算 。它是一种编程模型,用于对海量数据进行并行处理和计算。其思想是"分而治之":将复杂的计算任务分解成两个阶段(Map和Reduce),并在多个节点上并行执行。

工作原理

  1. Map(映射)阶段 :多个Mapper任务并行工作,读取HDFS上的数据块,对每条数据进行初步处理,输出一系列中间键值对 (key, value)
  2. Shuffle & Sort(洗牌与排序):系统自动将Map阶段输出的、具有相同key的所有value集中到一起,发送给同一个Reducer。
  3. Reduce(归约)阶段:多个Reducer任务并行工作,接收属于自己的一组键值对,进行汇总、计算等最终处理,并将结果写回HDFS。

举例说明统计一个超大文本文档中每个单词出现的次数

  • 输入:HDFS上的文档被分成多个块。
  • Map阶段 :每个Mapper读取一个数据块。
    • 逐行处理,将每行文本拆分成单词。
    • 对每个单词,输出中间键值对 (单词, 1)。例如,(Hello, 1), (World, 1), (Hello, 1)
  • Shuffle阶段 :系统将所有相同的单词"洗牌"到一起。例如,所有 (Hello, 1) 的键值对被送到同一个Reducer。
  • Reduce阶段 :每个Reducer处理一个或一组单词。
    • 接收 (Hello, [1, 1, 1, ...]) 这样的输入。
    • 将列表中的1相加,得到最终计数。
    • 输出最终键值对 (Hello, 3) 到HDFS。

核心三:YARN (Yet Another Resource Negotiator) - 资源管理和调度系统

作用负责集群资源管理和任务调度 。它是Hadoop 2.0引入的"核心大脑",将资源管理和作业调度/监控的功能从MapReduce中分离出来,使Hadoop不再局限于MapReduce一种计算框架,可以支持Spark、Flink等多种计算引擎。

核心组件与流程

  • ResourceManager (RM):集群的"总指挥官",负责整个系统的资源(CPU、内存)管理和分配。
  • NodeManager (NM):每个节点上的"工头",负责启动并监控本节点的容器(Container,即资源单元),并向RM汇报。
  • ApplicationMaster (AM):每个具体应用(如一个MapReduce作业)的"项目经理"。它向RM申请资源,并与NM协作来执行和监控具体的任务(如Map Task或Reduce Task)。

举例说明当上面提到的"单词统计"MapReduce作业提交到YARN集群时

  1. 客户端提交作业到 ResourceManager
  2. ResourceManager 在一个空闲的NodeManager上为这个作业分配一个容器,并启动 ApplicationMaster(即这个MapReduce作业的专属管理者)。
  3. ApplicationMasterResourceManager 申请运行Map任务和Reduce任务所需的资源。
  4. ResourceManager 根据集群情况,在各个 NodeManager 上分配容器。
  5. ApplicationMaster 指示对应的 NodeManager 在分配到的容器中启动具体的 Map任务Reduce任务
  6. ApplicationMaster 监控所有任务的执行状态,并在任务失败时申请新资源重试。
  7. 所有任务完成后,ApplicationMasterResourceManager 注销,并告知客户端作业完成。

总结与关系

核心组件 核心作用 比喻 在单词统计例子中的角色
HDFS 存储 分布式仓库 存储待处理的超大文档,以及处理后的结果文件。
MapReduce 计算逻辑 车间流水线说明书 定义了如何"分块统计单词"并"合并结果"的算法和步骤。
YARN 资源调度 工厂厂长和调度中心 协调集群的CPU和内存,确保Mapper和Reducer任务能获得资源并高效执行。

三者协作流程 :数据首先存储在 HDFS 上 -> 用户提交一个 MapReduce 程序 -> YARN 调度集群资源来执行这个MapReduce程序 -> 程序从 HDFS 读取数据,进行计算 -> 最终结果写回 HDFS

这种架构使得Hadoop能够以可靠、可扩展的方式处理PB级别的数据。

相关推荐
guizhoumen31 分钟前
2026年建站系统推荐及选项指南
大数据·运维·人工智能
蘑菇物联40 分钟前
蘑菇物联入选“预见·2026”年度双榜,以AI技术赋能制造业绿色转型!
大数据·人工智能
跨境小技43 分钟前
Reddit营销:如何在Reddit写出“像用户一样”的营销贴?、
大数据
m0_466525291 小时前
东软与葫芦岛市民政局签约 共建智慧养老服务平台
大数据·人工智能
乐居生活官1 小时前
2026五大功能全面的电商软件测评:打造全链路智能运营体系
大数据·人工智能
没有bug.的程序员1 小时前
Spring Boot 事务管理:@Transactional 失效场景、底层内幕与分布式补偿实战终极指南
java·spring boot·分布式·后端·transactional·失效场景·底层内幕
ws2019072 小时前
智驾与电池双线突破?AUTO TECH China 2026广州新能源汽车展解码产业新局
大数据·人工智能·科技·汽车
2501_941982052 小时前
企业微信外部群精准运营:API 主动推送消息开发指南
大数据·人工智能·企业微信
LuminescenceJ2 小时前
GoEdge 开源CDN 架构设计与工作原理分析
分布式·后端·网络协议·网络安全·rpc·开源·信息与通信
2501_911067662 小时前
光能筑底,智联全城——叁仟智慧太阳能路灯杆重构城市基础设施新生态
大数据·人工智能·重构