hadoop全家桶,知识体系一共包含哪些部分?底层原理是什么?
一个完整的“大数据操作系统”——它提供分布式存储(HDFS)、资源调度(YARN)、批处理(MapReduce)、数据仓库(Hive)、实时采集(Kafka)、工作流(Airflow)等全套能力Hadoop 全家桶不是“软件”,而是“大数据宇宙”——你用 HDFS 存数据,用 Hive 查数据,用 Spark 算数据,用 Airflow 管流程,构建真正的企业级数据平台。掌握它,你就能驾驭 PB
·
Hadoop 全家桶 是大数据生态的“操作系统”,它不是一个单一工具,而是一套完整的分布式系统栈,用于存储、处理、分析海量数据。
一、知识体系总览
| 模块 | 核心内容 |
|---|---|
| 1. Hadoop 核心三驾马车 | HDFS、MapReduce、YARN |
| 2. 数据存储层 | HDFS、HBase、Kudu |
| 3. 数据处理层 | MapReduce、Spark、Flink |
| 4. 数据查询层 | Hive、Impala、Presto |
| 5. 资源调度层 | YARN、Kubernetes |
| 6. 数据采集层 | Flume、Sqoop、Kafka |
| 7. 工作流调度 | Oozie、Airflow、Azkaban |
| 8. 元数据管理 | Hive Metastore、Atlas |
| 9. 数据仓库与湖仓一体 | Hive、Iceberg、Hudi |
| 10. 安全机制 | Kerberos、Ranger、Sentry |
| 11. 底层原理 | 分布式存储、分片、容错、MapReduce 模型 |
| 12. 生态整合 | Hadoop + Spark + Kafka + Flink |
| 13. 最佳实践 | 数据分层、ETL 流程、监控告警 |
| 14. 故障排查 | NameNode 故障、DataNode 失联 |
| 15. 源码级解析 | HDFS Java 实现、YARN 调度算法 |
二、Hadoop 全家桶全景图
+-----------------------------+
| 应用层 |
| BI 报表 / 机器学习 / API |
+-----------------------------+
↓
+-----------------------------+
| 查询与分析 |
| Hive / Impala / Presto |
+-----------------------------+
↓
+-----------------------------+
| 数据处理 |
| Spark / Flink / MapReduce |
+-----------------------------+
↓
+-----------------------------+
| 工作流调度 |
| Oozie / Airflow / Azkaban |
+-----------------------------+
↓
+-----------------------------+
| 资源调度 |
| YARN / Kubernetes |
+-----------------------------+
↓
+-----------------------------+
| 数据存储 |
| HDFS / HBase / Kudu |
+-----------------------------+
↓
+-----------------------------+
| 数据采集 |
| Flume / Sqoop / Kafka |
+-----------------------------+
↓
+-----------------------------+
| 元数据管理 |
| Hive Metastore / Atlas |
+-----------------------------+
↓
+-----------------------------+
| 安全机制 |
| Kerberos / Ranger / Sentry |
+-----------------------------+
✅ Hadoop 是“地基”,其他组件在其上构建
三、核心组件详解
✅ 1. HDFS(Hadoop Distributed File System)
- 作用:分布式文件系统,存储海量数据
- 特点:
- 分块存储(默认 128MB)
- 多副本(默认 3 副本)
- 高容错
- 核心进程:
NameNode:元数据管理(文件目录、块位置)DataNode:数据存储Secondary NameNode:辅助 NameNode(非高可用)
✅ 2. MapReduce
- 作用:分布式计算模型
- 核心思想:
Map:分治,每个节点处理一部分数据Reduce:聚合,汇总结果
- 流程:
Input → Split → Map → Shuffle → Reduce → Output - 缺点:基于磁盘,慢;已被 Spark 取代
✅ 3. YARN(Yet Another Resource Negotiator)
- 作用:资源调度与作业管理
- 核心角色:
ResourceManager:全局资源调度NodeManager:单节点资源管理ApplicationMaster:单个作业的调度
- 支持多种计算框架:MapReduce、Spark、Flink
四、全家桶扩展组件
✅ 1. 数据仓库:Hive
- 作用:SQL on Hadoop
- 原理:将 SQL 转为 MapReduce/Tez/Spark 任务
- 元数据:存储在 MySQL 的 Hive Metastore
✅ 2. 实时查询:Impala / Presto
- 作用:低延迟 SQL 查询
- 特点:内存计算,秒级响应
- Impala:Cloudera 开发,与 HDFS 紧密集成
- Presto:Facebook 开发,支持多数据源
✅ 3. NoSQL 数据库:HBase
- 作用:分布式列式数据库
- 场景:实时读写、高并发
- 架构:基于 HDFS,支持随机访问
✅ 4. 数据采集
| 工具 | 用途 |
|---|---|
| Flume | 日志采集(如 Nginx 日志) |
| Sqoop | 关系型数据库 ↔ HDFS 批量同步 |
| Kafka | 实时消息队列,流式数据入口 |
✅ 5. 工作流调度
| 工具 | 说明 |
|---|---|
| Oozie | Hadoop 原生调度器,XML 配置 |
| Airflow | Python 编写 DAG,现代首选 |
| Azkaban | LinkedIn 开发,Web 界面友好 |
✅ 6. 元数据管理
- Hive Metastore:存储 Hive 表结构
- Apache Atlas:数据血缘、分类、安全策略
✅ 7. 湖仓一体(Lakehouse)
- Apache Iceberg:高性能表格式
- Apache Hudi:支持实时更新
- Delta Lake:Databricks 开发
五、底层原理详解
✅ 1. HDFS 分布式存储原理
客户端写入文件
↓
NameNode 返回块位置(如 DN1, DN2, DN3)
↓
客户端直接写入 DataNode
↓
DataNode 间复制副本
↓
写入成功
- 分块:大文件切分为 128MB 块
- 多副本:默认 3 副本,跨机架存储
- 容错:NameNode 内存 + EditLog + FsImage
✅ 2. MapReduce 执行流程
1. InputSplit:将输入文件切片
2. Map Task:每个 Split 启动一个 Map
3. Shuffle:按 Key 排序、分区、传输到 Reduce
4. Reduce Task:聚合结果
5. Output:写入 HDFS
✅ “Shuffle” 是性能瓶颈
✅ 3. YARN 资源调度
用户提交作业
↓
ResourceManager 分配 Container
↓
NodeManager 启动 ApplicationMaster
↓
AM 申请资源运行 Task
↓
Task 在 Container 中执行
✅ 支持多框架共存
六、安全机制
| 机制 | 说明 |
|---|---|
| Kerberos | 强身份认证,防止未授权访问 |
| Ranger | 细粒度权限控制(库、表、列) |
| Sentry | Cloudera 的权限系统 |
| SSL | 数据传输加密 |
七、最佳实践
✅ 推荐做法
- 数据分层:ODS → DWD → DWS → ADS
- 使用 Parquet/ORC 格式:列式存储,压缩率高
- 用 Airflow 替代 Oozie:更易用
- 监控 NameNode 健康状态
- 定期备份元数据
❌ 避免
- 直接在 HDFS 上小文件存储(影响 NameNode)
- 不设权限控制
- 用 MapReduce 处理实时任务
- 忽视数据血缘
八、总结
Hadoop 全家桶的本质
一个完整的“大数据操作系统”——它提供分布式存储(HDFS)、资源调度(YARN)、批处理(MapReduce)、数据仓库(Hive)、实时采集(Kafka)、工作流(Airflow)等全套能力
核心原理
- HDFS:分块 + 多副本 + NameNode 元数据
- MapReduce:分治 + Shuffle + 聚合
- YARN:ResourceManager + NodeManager + ApplicationMaster
- Hive:SQL → MapReduce/Spark
- HBase:LSM-Tree + MemStore + HFile
- Kafka:分区 + 副本 + 日志存储
成功关键
✅ 理解 HDFS 是“地基”
✅ 掌握 Hive SQL 查询
✅ 用 Spark 替代 MapReduce
✅ 用 Airflow 管理 ETL 流程
✅ 用 Ranger 控制权限
一句话总结:
Hadoop 全家桶不是“软件”,而是“大数据宇宙”——你用 HDFS 存数据,用 Hive 查数据,用 Spark 算数据,用 Airflow 管流程,构建真正的企业级数据平台。
掌握它,你就能驾驭 PB 级数据洪流。
更多推荐



所有评论(0)