大数据学习路线图
总体路径
基础准备(1个月)
│
▼
存储与计算基础(2个月)
│
▼
核心技术栈(3个月)
│
▼
进阶与实战(3个月)
│
▼
工程化与架构(持续)阶段一:基础准备(1个月)
Linux & Shell
- [ ] Linux 基础命令(文件、进程、网络)
- [ ] Shell 脚本编写
- [ ] Vim 基本使用
- [ ] SSH、SCP、rsync
编程语言
- [ ] Java:集合、多线程、JVM 基础(Hadoop/Spark 核心语言)
- [ ] Python:数据处理、PySpark(数据分析首选)
- [ ] SQL:窗口函数、子查询、JOIN 优化
网络与存储基础
- [ ] TCP/IP 基础
- [ ] 磁盘 I/O 原理(顺序读写 vs 随机读写)
- [ ] 分布式系统基础概念(CAP、一致性、分区容错)
阶段二:存储与计算基础(2个月)
第1个月:Hadoop 生态基础
| 技术 | 学习重点 | 预计时间 |
|---|---|---|
| HDFS | 架构、读写流程、HA 配置、常用命令 | 1周 |
| YARN | 架构、调度器、资源配置 | 3天 |
| MapReduce | 原理、编程模型、Shuffle 机制 | 1周 |
| Hive | HiveQL、分区、存储格式、调优 | 1.5周 |
| Zookeeper | 数据模型、Watch 机制、选主 | 3天 |
实战项目:搭建伪分布式 Hadoop 集群,用 Hive 做一个简单的用户行为分析。
第2个月:Spark 入门
| 技术 | 学习重点 | 预计时间 |
|---|---|---|
| Spark Core | RDD、算子、DAG、Stage 划分 | 1周 |
| Spark SQL | DataFrame、Dataset、SQL 接口 | 1周 |
| Spark Streaming | Structured Streaming、Watermark | 1周 |
| Kafka | 架构、生产消费、命令行操作 | 1周 |
实战项目:Kafka + Spark Streaming 实时统计网站 PV/UV。
阶段三:核心技术栈(3个月)
第1个月:Flink
| 技术 | 学习重点 | 预计时间 |
|---|---|---|
| Flink Core | DataStream API、时间语义、窗口 | 1.5周 |
| Flink 状态 | State Backend、Checkpoint、精确一次 | 1周 |
| Flink SQL | DDL、流式查询、维表 Join | 1.5周 |
实战项目:Flink 实时数仓,Kafka → Flink → ClickHouse 实时报表。
第2个月:存储进阶
| 技术 | 学习重点 | 预计时间 |
|---|---|---|
| HBase | 数据模型、RowKey 设计、Java API | 1周 |
| ClickHouse | MergeTree 引擎、SQL 优化、物化视图 | 1周 |
| Delta Lake | ACID 事务、Merge、时间旅行 | 1周 |
| Iceberg | 隐藏分区、Schema 演进、多引擎 | 1周 |
第3个月:平台与工程化
| 技术 | 学习重点 | 预计时间 |
|---|---|---|
| Airflow | DAG 编写、Operator、调度策略 | 1周 |
| Doris | 数据模型、导入方式、查询优化 | 1周 |
| Trino | 连接器配置、联邦查询 | 3天 |
| 监控 | Prometheus + Grafana 搭建 | 1周 |
阶段四:进阶与实战(3个月)
完整数仓项目
项目目标:搭建一个完整的电商数仓
数据源(MySQL 业务库)
│
▼ Sqoop / DataX(离线)/ Kafka(实时)
│
▼
ODS 层(HDFS + Hive 外部表)
│
▼ Spark SQL / Flink SQL
│
▼
DWD 层(数据清洗、标准化)
│
▼ Spark SQL
│
▼
DWS 层(轻度聚合)
│
▼ Spark SQL
│
▼
ADS 层(应用数据)
│
▼ ClickHouse / Doris
│
▼
BI 报表 / API涉及技术:Hadoop + Hive + Spark + Kafka + Flink + ClickHouse + Airflow
实时数仓项目
MySQL CDC(Debezium)
│
▼
Kafka(原始数据)
│
▼ Flink SQL
│
▼
Kafka(清洗后数据)
│
▼ Flink SQL
│
▼
Doris(实时 OLAP)
│
▼
实时大屏技术深度路线
深入 Spark
- [ ] Spark 内存管理(Tungsten)
- [ ] Catalyst 优化器原理
- [ ] Spark Shuffle 机制
- [ ] AQE 自适应查询执行
- [ ] Spark 源码阅读
深入 Flink
- [ ] Flink 内存模型
- [ ] Checkpoint 原理(Chandy-Lamport)
- [ ] RocksDB State Backend 调优
- [ ] Flink 网络栈(Credit-based 流控)
- [ ] Flink 源码阅读
深入 Kafka
- [ ] Kafka 存储原理(Log Segment)
- [ ] Kafka 副本同步机制(ISR)
- [ ] Kafka 事务与精确一次
- [ ] Kafka 性能调优
- [ ] Kafka 源码阅读
推荐学习资源
书籍
| 书名 | 适合阶段 |
|---|---|
| 《Hadoop 权威指南》 | 入门 |
| 《Spark 快速大数据分析》 | 入门 |
| 《Flink 内核原理与实现》 | 进阶 |
| 《数据密集型应用系统设计》 | 架构 |
| 《流式系统》 | 进阶 |
官方文档
实践平台
面试高频考点
Spark
- RDD、DataFrame、Dataset 区别
- Spark 宽依赖与窄依赖
- Spark Shuffle 原理
- Spark 内存管理(堆内/堆外)
- 数据倾斜解决方案
- AQE 原理
Flink
- Flink 与 Spark Streaming 区别
- Flink 时间语义(事件时间 vs 处理时间)
- Watermark 原理
- Checkpoint 原理(Chandy-Lamport)
- 精确一次语义实现
- 状态后端选择
Kafka
- Kafka 高吞吐原理(顺序写、零拷贝、批量)
- Kafka 副本机制(ISR、HW、LEO)
- Kafka 消费者组 Rebalance
- Kafka 精确一次语义
- Kafka 消息丢失场景
HDFS
- HDFS 读写流程
- NameNode 内存结构
- HDFS HA 原理
- 小文件问题解决方案
学习建议
理论与实践并重。每学一个技术,都要动手搭建环境、跑通示例代码。大数据技术的坑很多,只有实际操作才能真正掌握。