news 2026/4/22 3:28:40

Hadoop核心组件及其作用概述

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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级别的数据。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 15:20:39

CIPURSE协议深度分析:公共交通卡安全机制与研究方法探讨

CIPURSE协议深度分析:公共交通卡安全机制与研究方法探讨 【免费下载链接】proxmark3 Iceman Fork - Proxmark3 项目地址: https://gitcode.com/GitHub_Trending/pr/proxmark3 还在为复杂的公共交通卡安全机制而困惑?面对CIPURSE协议的层层加密感到…

作者头像 李华
网站建设 2026/4/20 11:18:37

Sqlserver查询java程序执行超慢sql直接在数据库工具里执行很快

今天记录一个比较隐晦不好排查的问题,写了个查询功能, 结果用户反馈在页面点查询得5 -6分钟才能出来,执行的过程中把数据库执行的sql取出来,字段替换掉在数据库直接执行很快不到1秒,结果在解决的过程中1.尝试的给sql的…

作者头像 李华
网站建设 2026/4/20 1:08:26

Hot100题4--相交链表

暴力法。这段代码用于找到两个链表的相交节点,使用双重循环遍历两个链表,外层循环遍历链表A的每个节点,内层循环遍历链表B的每个节点,比较节点引用是否相同(不是值相同),如果找到相同引用则返回…

作者头像 李华
网站建设 2026/4/16 11:53:51

【硬核深扒】彻底搞懂以太坊账户抽象(ERC-4337):告别助记词,Web3大规模落地的最后一块拼图 (为什么V神都在推?一文讲透“智能合约钱包”背后的技术原理与未来)

1. 背景:为什么现在的钱包这么难用? 现状: 助记词丢失即资产清零、Gas费必须用ETH支付、无法实现社交恢复。 观点: 只要用户还需要管理私钥,Web3 就永远无法在大众中普及。 引入: 账户抽象(Ac…

作者头像 李华
网站建设 2026/4/21 7:10:35

揭秘程序员的核心能力:为什么说技术架构只是冰山一角?深度解析程序员的真正竞争力!

简介 在AI技术快速发展的今天,程序员的职业定位正发生根本转变。AI已超越大多数程序员的技术能力,未来程序员的核心竞争力将从纯技术转向软能力(深度思考、人际连接、持续学习)、商业价值创造能力以及强大的内在驱动力。程序员需要…

作者头像 李华
网站建设 2026/4/20 21:28:30

算一算你盘中餐的“碳足迹”:这款工具如何让环保从餐桌开始?

你是否想过,我们日常的一餐饭,除了满足味蕾之外,还会对环境产生怎样的影响?食物从生产、加工到运输,每一个环节都可能留下碳排放的痕迹。如今,一款名为“膳食碳足迹计算器”的在线工具,正以直观…

作者头像 李华