什么是hadoop

Apache Hadoop 是一个开源的 分布式计算框架,旨在以可靠、可扩展的方式存储和处理海量数据(从 TB 级到 PB 级)。它的核心设计理念是通过多台廉价服务器构建集群,实现数据的分布式存储和并行计算,适用于大数据场景下的批处理任务。


Hadoop 的核心组件

1. HDFS(Hadoop Distributed File System)

  • 分布式文件系统,将大文件切分为多个块(默认 128MB/256MB),分散存储在多台机器上。

  • 高容错性:数据自动复制多份(默认 3 副本),即使部分节点故障,数据仍可恢复。

  • 高吞吐量:适合顺序读写大文件,但不适合低延迟访问或频繁修改。

2. MapReduce

  • 分布式计算模型,将任务拆分为 `Map`(数据映射)和 `Reduce`(结果汇总)两个阶段。

  • 开发者需编写 Map 和 Reduce 函数,由框架自动处理分布式调度、容错和负载均衡。

  • 缺点:中间结果需写入磁盘,性能较低(后续改进为 Apache Tez、Spark 等内存计算引擎)。

3. YARN(Yet Another Resource Negotiator)

  • 资源管理框架,负责集群资源的统一调度(CPU、内存等)。

  • 支持多种计算引擎(如 MapReduce、Spark、Flink)在同一个集群上运行,提升资源利用率。


Hadoop 生态系统

Hadoop 不仅包含核心组件,还衍生出一个丰富的工具生态,涵盖数据存储、计算、分析和管理:

  • 数据存储:HBase(分布式 NoSQL 数据库)、Hive(数据仓库)。

  • 计算引擎:Spark(内存计算)、Flink(流处理)、Tez(优化 DAG 执行)。

  • 数据管理:ZooKeeper(分布式协调)、Oozie(工作流调度)。

  • 机器学习:Mahout(传统算法库)、Spark MLlib。


核心特点

  1. 高扩展性
  • 可通过横向扩展(增加节点)轻松应对数据量增长,支持数千台服务器集群。
  1. 高容错性
  • 数据多副本存储和任务自动重试机制,保障硬件故障时的可靠性。
  1. 低成本
  • 基于普通商用硬件构建,无需依赖昂贵的高端服务器。
  1. 批处理优先
  • 适合离线处理海量数据,但不适合实时流处理或交互式查询(需借助其他工具如 Spark)。

应用场景

  • 大规模日志分析(如用户行为日志、服务器日志)。

  • 数据仓库建设(存储历史数据,供 Hive、Spark SQL 分析)。

  • ETL 流程(数据清洗、转换和加载)。

  • 机器学习与数据挖掘(预处理海量训练数据)。


与传统数据库的对比

| 特性 | Hadoop | 传统数据库(如 Oracle) |

|---------------------|---------------------------------|------------------------------|

| 数据规模 | PB 级,分布式存储 | TB 级,单机或小型集群 |

| 延迟 | 高吞吐量,分钟/小时级批处理 | 低延迟,毫秒/秒级响应 |

| 数据模型 | 支持结构化、半结构化、非结构化 | 仅结构化数据 |

| 硬件成本 | 基于廉价商用硬件 | 依赖高端硬件和存储 |

| 计算模式 | 分布式并行计算 | 单节点或有限并行 |


优缺点

  • 优点:

成本低、扩展性强、容错性高、生态丰富。

  • 缺点:

实时性差、MapReduce 编程复杂、小文件处理效率低。


总结

Hadoop 是大数据领域的基石,解决了海量数据的存储(HDFS)和批处理(MapReduce/YARN)问题。尽管其原生计算引擎(MapReduce)逐渐被 Spark、Flink 等替代,但 HDFS 和 YARN 仍是许多大数据架构的核心组件。结合 Hive、Spark 等工具,Hadoop 生态持续支撑着企业级数据湖、数据仓库等场景。

相关推荐
武子康6 小时前
大数据-240 离线数仓 - 广告业务 Hive ADS 实战:DataX 将 HDFS 分区表导出到 MySQL
大数据·后端·apache hive
回家路上绕了弯1 天前
深入解析Agent Subagent架构:原理、协同逻辑与实战落地指南
分布式·后端
字节跳动数据平台1 天前
5000 字技术向拆解 | 火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
武子康1 天前
大数据-239 离线数仓 - 广告业务实战:Flume 导入日志到 HDFS,并完成 Hive ODS/DWD 分层加载
大数据·后端·apache hive
字节跳动数据平台2 天前
代码量减少 70%、GPU 利用率达 95%:火山引擎多模态数据湖如何释放模思智能的算法生产力
大数据
得物技术2 天前
深入剖析Spark UI界面:参数与界面详解|得物技术
大数据·后端·spark
武子康2 天前
大数据-238 离线数仓 - 广告业务 Hive分析实战:ADS 点击率、购买率与 Top100 排名避坑
大数据·后端·apache hive
武子康3 天前
大数据-237 离线数仓 - Hive 广告业务实战:ODS→DWD 事件解析、广告明细与转化分析落地
大数据·后端·apache hive
大大大大晴天3 天前
Flink生产问题排障-Kryo serializer scala extensions are not available
大数据·flink
武子康5 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive