GKLBB

当你经历了暴风雨,你也就成为了暴风雨

导航

大数据系统学习路线:完整版

 


学习主线

text
编程与SQL → 计算机基础 → 数据库 → 分布式系统 → Hadoop → Spark → Kafka/Flink → 数据仓库/数据湖 → 工程实践 → 研究级

第一阶段:编程基础

Python

书名定位
《Python编程:从入门到实践》 入门语法
《利用Python进行数据分析》 Pandas/NumPy
《流畅的Python》 进阶特性
《Python数据科学手册》 数据处理工具链

必须掌握

  • 基础语法、面向对象、文件与网络编程
  • NumPy、Pandas、Matplotlib
  • JSON、CSV、Parquet 数据格式

Java / Scala(大数据开发方向必学)

书名定位
《Java核心技术》 Java 基础
《Effective Java》 Java 进阶
《Scala编程》 Spark 源码基础

数据分析方向以 Python 为主,大数据开发和源码阅读方向 Java + Scala 都需要掌握


第二阶段:SQL 与数据库

SQL

书名定位
《SQL必知必会》 SQL 入门
《SQL Cookbook》 实用查询技巧

必须掌握

  • 多表连接、子查询、窗口函数
  • 索引原理与执行计划分析
  • 事务、锁、MVCC
  • 分库分表、OLTP 与 OLAP 的区别

数据库原理

书名定位
《数据库系统概念》 理论基础
《数据库管理系统》 实现原理
《高性能MySQL》 工程实践
《数据库内部结构解析》 存储引擎深度

第三阶段:计算机基础

数据结构与算法

书名定位
《算法图解》 入门直觉建立
《编程珠玑》 工程实用算法
《算法导论》 系统理论
《数据结构与算法分析》 Java 视角

大数据方向优先掌握

text
外部排序 → 布隆过滤器 → 一致性哈希 → HyperLogLog → Top-K 流式算法 → 近似算法 → 图算法

重点是理解这些结构解决了什么问题,而不是算法证明

操作系统、网络与 Linux

书名定位
《深入理解计算机系统》 系统核心
《现代操作系统》 OS 原理
《计算机网络:自顶向下方法》 网络基础
《Linux命令行与Shell脚本编程大全》 实操
《鸟哥的Linux私房菜》 Linux 系统管理

必须掌握

  • 进程与线程、内存与虚拟内存
  • 文件系统、IO 与多路复用
  • TCP/IP、RPC
  • 磁盘吞吐与网络带宽
  • 容器与虚拟化基础

第四阶段:分布式系统

核心书单

书名定位
《Designing Data-Intensive Applications》 最优先阅读
《分布式系统概念与设计》 理论基础
《分布式系统原理与范型》 范型与模型

DDIA 是这个阶段最重要的一本书,系统覆盖存储、复制、分区、事务、批处理、流处理和一致性,读完之后再看具体框架会有完全不同的理解深度

必须掌握

  • CAP 与 PACELC
  • 一致性模型(强一致、最终一致、线性一致)
  • 主从复制、Raft/Paxos
  • 分布式事务、分布式锁
  • 数据分区、故障恢复
  • 幂等性、Exactly-once 与 At-least-once

第五阶段:Hadoop 体系

书单

书名定位
《Hadoop权威指南》 系统入门
《Hadoop技术内幕:HDFS》 存储层原理
《Hadoop技术内幕:MapReduce》 计算层原理
《Hadoop技术内幕:YARN》 资源调度原理
《Hive编程指南》 SQL on Hadoop

学习策略

  • MapReduce 编程模型值得理解:Map → Shuffle → Reduce 是理解 Spark Shuffle、Flink Batch、Hash Join 的概念基础
  • 不建议在老式 MapReduce 业务开发上投入大量时间
  • 重点放在 HDFS 架构、YARN 调度机制和 Hive 数据模型

第六阶段:Spark

书单与推荐顺序

text
Learning Spark → Spark权威指南 → High Performance Spark
书名定位
《Learning Spark》(第二版) 入门,覆盖 Spark 3.0
《Spark权威指南》 系统全面
《High Performance Spark》 性能调优
《Spark实战》 工程实践

必须掌握

  • RDD、DataFrame、Dataset 三层抽象及其关系
  • Spark SQL 与 Catalyst 优化器
  • Tungsten 执行引擎
  • Shuffle 机制与 Partition 设计
  • Broadcast Join 与 Sort-Merge Join
  • Structured Streaming
  • Checkpoint 与容错
  • 性能调优(内存、并发、数据倾斜)

第七阶段:Kafka 与 Flink

Kafka

书名定位
《Kafka权威指南》 系统入门
《深入理解Kafka:核心设计与实践原理》 原理深度
《Kafka Streams in Action》 流处理应用
《Kafka核心源码分析》 源码级别

必须掌握

  • Topic、Partition、Offset
  • Producer、Consumer、Consumer Group
  • Rebalance 机制、ISR、Leader/Follower
  • Kafka Connect、Kafka Streams
  • Schema Registry、幂等生产与事务

Flink 与流处理理论

书名定位
《Streaming Systems》 流处理理论基础,优先读
《Stream Processing with Apache Flink》 Flink 系统学习
《Flink原理、实战与性能优化》 工程实践

必须掌握

  • Event Time 与 Processing Time 的本质区别
  • Window 类型(Tumbling、Sliding、Session)
  • Watermark 机制与延迟数据处理
  • State 与状态后端(RocksDB)
  • Checkpoint 与 Savepoint
  • Exactly-once 语义实现原理
  • Backpressure 识别与处理
  • CEP 复杂事件处理
  • 流批一体

第八阶段:数据仓库与数据湖

数据仓库

书名定位
《数据仓库工具箱》 维度建模经典
《数据仓库生命周期工具箱》 完整生命周期
《Building the Data Warehouse》 架构设计

必须掌握

  • 维度建模:事实表、维度表、星型模型、雪花模型
  • 拉链表、SCD(缓慢变化维)
  • 数据分层:ODS → DWD → DWS → ADS
  • 指标体系设计
  • 数据血缘

数据工程

书名定位
《Fundamentals of Data Engineering》 数据平台全局视角
《Data Engineering with Python》 Python 工程实践
《Data Management at Scale》 大规模数据管理

数据湖与湖仓

核心技术栈

技术定位
Apache Iceberg 开放表格式,主流选择
Delta Lake Databricks 生态
Apache Hudi 增量处理场景
Trino / Presto 交互式查询引擎
Parquet / ORC 列存文件格式

必须掌握

  • Schema Evolution 与 Partition Evolution
  • Snapshot、Time Travel
  • Compaction、Manifest、Catalog
  • 存算分离架构
  • Lakehouse 与传统数仓的边界

第九阶段:工程能力补充

任务调度与编排

这是书单中缺失但实际工程中必须面对的部分:

工具定位
Apache Airflow 最主流的工作流调度
Apache DolphinScheduler 国内广泛使用
Prefect 现代化 Python 调度

数据质量与治理

工具 / 方向定位
Great Expectations 数据质量检测
Apache Atlas 元数据管理与数据血缘
OpenLineage 血缘标准协议
数据目录 元数据检索与治理

云原生基础设施

text
Docker → Kubernetes → 对象存储(S3/OSS/MinIO)→ 存算分离架构 → 云上托管大数据服务

存算分离是当前数据湖架构的核心思想,不理解对象存储就无法真正理解 Iceberg 的设计

监控与可观测性

书名 / 工具定位
《Site Reliability Engineering》 SRE 工程文化
《Database Reliability Engineering》 数据库可靠性
Prometheus + Grafana 指标监控
OpenTelemetry 可观测性标准

第十阶段:源码阅读

推荐阅读顺序

text
HDFS → MapReduce → Spark Core → Spark SQL → Kafka → Flink Runtime → Iceberg → Trino

每个系统重点关注的模块

系统重点模块
HDFS NameNode 元数据、Block 副本管理、心跳机制
Spark Core DAG 调度、Stage 划分、Shuffle 实现
Spark SQL Catalyst 优化器、Tungsten、物理计划
Kafka 日志存储、ISR 管理、消费者组协调
Flink JobGraph 生成、Checkpoint 协调、状态后端
Iceberg 文件格式、Snapshot 管理、Catalog 实现

配套书籍

  • 《深入理解计算机系统》
  • 《数据库内部结构解析》
  • 《深入理解Kafka:核心设计与实践原理》

第十一阶段:论文阅读

第一批:理解问题从哪里来

论文年份核心贡献
Google File System 2003 分布式存储起点
MapReduce 2004 大规模批处理编程模型
Bigtable 2006 结构化分布式存储

第二批:理解现代计算引擎

论文年份核心贡献
Dremel 2010 列存与嵌套数据查询
Resilient Distributed Datasets 2012 Spark 理论基础
Spark SQL 2015 Catalyst 优化器
MillWheel 2013 流处理有状态计算
The Dataflow Model 2015 统一批流理论模型
Apache Flink 2015 与 Dataflow 对照阅读

第三批:理解现代数据平台

论文年份核心贡献
Kafka 2011 高吞吐消息系统
Spanner 2012 全球分布式数据库
Mesa 2014 数据仓库增量更新
Lakehouse 2021 湖仓一体架构定义
Apache Iceberg Table Format 2023 开放表格式规范

三条方向路线

就业方向

text
Python/Java → SQL → MySQL → Kafka → Spark → Flink → Hive/Iceberg → Airflow → 数据仓库项目

起步建议

text
第一个月:Python 基础 + Pandas + SQL 窗口函数
第二个月:MySQL 搭库,理解索引与执行计划
第三个月:DDIA 前五章 + 搭 Kafka 本地环境收发消息
之后:根据岗位方向选择深入 Spark 或 Flink

科研方向

text
数据库原理 → 分布式系统 → DDIA → 经典论文 → Spark/Flink 源码 → 复现近三年 VLDB/SIGMOD 论文实验

选择一个具体问题复现论文实验,比实现简化版系统更能暴露真实技术差距

AI 与大数据结合方向

text
Python → SQL → Pandas → Spark MLlib → Mining of Massive Datasets → 推荐系统 → 分布式机器学习 → 向量数据库 → Feature Store

当前值得关注的新方向

  • 向量数据库:Milvus、pgvector
  • 特征存储:Feature Store 设计
  • 大模型推理的数据基础设施

实践项目:电商实时数据平台

边学边做一个覆盖完整链路的项目:

text
MySQL
  ↓(CDC 采集)
Debezium
Kafka(消息队列)
Flink(实时清洗与计算)
Iceberg on MinIO(数据湖存储)
Spark(批处理与数仓建设)
Trino(联邦查询)
Superset(数据可视化)
Airflow(任务调度)
Prometheus + Grafana(监控)

本地最小环境搭建

Bash
# 用 Docker Compose 启动核心组件
Kafka + Flink + MinIO + Iceberg + Trino + Superset

这个过程本身会暴露大量实际问题,比单纯读书更有效


优先读的核心十本

如果只能选十本,按顺序读这些:

顺序书名阶段
1 《Python编程:从入门到实践》 编程入门
2 《利用Python进行数据分析》 数据处理
3 《SQL必知必会》 SQL 基础
4 《数据库系统概念》 数据库原理
5 《深入理解计算机系统》 系统基础
6 《Designing Data-Intensive Applications》 分布式核心
7 《Hadoop权威指南》 大数据体系
8 《Learning Spark》 批处理核心
9 《Streaming Systems》 流处理理论
10 《Fundamentals of Data Engineering》 平台全局视角

一句话原则

不要按顺序把书读完,带着具体问题去找对应资料。书单的价值是提供问题地图,让你知道哪些问题存在、在哪个层次、用什么解决。

posted on 2026-08-27 19:49  GKLBB  阅读(25)  评论(0)    收藏  举报