Spark学习
要精通 Apache Spark,需要从原理、编程、调优到实战全面掌握。以下是系统化的知识体系:
✅ 一、基础知识
-
Spark 核心概念
- RDD、DataFrame、Dataset
- 转换(Transformation)与行动(Action)操作
- 懒执行、DAG、Stage、Task
-
Spark 架构理解
- Driver、Executor、Cluster Manager
- Job -> Stage -> Task 的执行流程
-
部署模式
- Standalone、YARN、Kubernetes、Mesos
- 本地开发与集群部署差异
✅ 二、编程与 API 使用
-
Spark SQL
- DataFrame 操作、Spark SQL 查询
- Hive 集成、Catalog、UDF/UDAF
- 分区表、广播 Join、窗口函数
-
Spark Streaming / Structured Streaming
- 微批处理模型、Watermark、窗口操作
- 与 Kafka、Socket、文件系统集成
- 状态管理、输出模式(Append/Update/Complete)
-
Spark MLlib / GraphX(可选)
- 机器学习管道、模型训练与评估
- 图计算基本操作
✅ 三、性能调优与资源管理
-
性能调优关键点
- 内存管理(堆内/堆外)、GC 优化
- Shuffle 优化(合并、小文件处理)
- Join 策略(Broadcast、SortMerge、ShuffleHash)
-
参数调优
- 并行度(spark.sql.shuffle.partitions)
- Executor 数量、内存、核心数配置
- 动态资源分配(Dynamic Allocation)
-
缓存与持久化
- cache() vs persist()
- 存储级别(MEMORY_ONLY、DISK_ONLY 等)
✅ 四、调试与监控
- 监控工具
- Spark UI、Ganglia、Prometheus + Grafana
- 查看 DAG、Stage 执行详情、瓶颈分析
- 日志分析与异常排查
- Task 失败、OOM、Shuffle 失败排查
- Job 卡顿、数据倾斜处理
✅ 五、进阶与源码
- 源码学习(可选)
- Spark Scheduler、Catalyst 优化器、Tungsten 执行引擎
- ShuffleManager、MemoryManager 等核心组件
- 与大数据生态集成
- Hive、HDFS、HBase、Kafka、Delta Lake、Iceberg
- 与 Airflow、NiFi、Flink 等调度或流批一体化
🎯 总结:
精通 Spark = 编程能力 + 性能调优 + 架构理解 + 项目实战