这门课解决什么问题

很多做数据处理的人常遇到这种场景:用 Python 单机跑几十 GB 的日志,内存直接撑爆,或者跑个 Join 操作等半天没反应。这门课针对的就是这类算力瓶颈,核心帮你把处理思维从“单机脚本”切换到“分布式内存计算”。它不教你写基础的爬虫或 SQL,而是直接切入 Spark 的运行机制,解决你在离线批处理、海量数据清洗时单机扛不住的问题。如果你日常工作涉及日志分析、数仓 ETL 或大表统计,且经常被性能卡脖子,这套内容的场景对口度很高。

适合什么基础与建议先看哪几块

这套资料不适合零基础。看之前你需要有扎实的编程基础,能熟练写代码,且对 Linux 常用命令和基础 SQL 有概念,最好接触过 Hadoop 生态,知道分布式存储大概是怎么回事。如果连变量作用域和基本聚合函数都不熟,建议先补底子再来。

拿到资料后别从头按顺序死磕。建议先把环境搭建那几节过一遍,在本地把 Spark 跑通,能顺利提交应用并看懂日志级别设置,这是后续实操的前提。之后重点看“正确理解 Spark”相关章节,弄懂 RDD 的逻辑和分布式调度原理。很多人写 Spark 慢,不是因为语法不对,而是不懂底层机制导致频繁触发网络传输。把核心运行逻辑看透,比盲目敲代码管用得多。

学完能独立做什么与资料怎么配合练习

学完这套内容,你能独立用 Spark 写分布式数据处理应用。具体来说,面对几十甚至上百 GB 的数据文件,你能搭起集群环境,用代码完成读取、清洗、聚合统计和结果落盘,而不是只能靠切分文件勉强应付。同时,你能看懂提交任务后的运行日志,遇到数据倾斜或内存报错时,知道去哪里排查。

配合资料练习时,环境搭建章节里提到的本地运行注意事项和集群提交应用是重点,必须自己动手跑一遍。资料里涉及 MySQL 安装的部分也别跳过,很多实际业务需要把处理后的结果写入数据库。看视频时跟着把应用在 IDEA 里敲一遍,然后用命令行提交到集群观察执行过程。遇到报错先查日志级别设置,自己读报错信息解决,这本身就是分布式开发的必经环节。


学习分布式内存计算引擎 Spark

课程目录

*   01 课程答疑/

  *   01 老汤大数据课程体系介绍.mp4 06:21

*   02 Spark环境的搭建(windows)/

  *   01 本地运行Spark需要注意的事项

  *   02 IntelliJ IDEA开发spark应用.mp4 10:32

  *   03 spark源代码环境的搭建.mp4 06:01

  *   04 Spark集群安装-虚拟机上Scala的安装.mp4 12:33

  *   05 Spark集群环境的搭建.mp4 12:44

  *   06 集群spark-submit提交应用.mp4 17:42

  *   07 spark-shell说明.mp4 06:46

  *   08 Spark的日志级别的设置.mp4 07:26

  *   09 mysql的安装(后面会用到).mp4 08:13

  *   10 Spark模块学习说明.mp4 03:18

*   03 正确理解Spark/

  *   01 Spark是怎么进行分布式计算的?.mp4 14:37

  *   02 数据重新分区概述.mp4 08:29

  *   03 Spark分布式计算流程中的几个疑问点.mp4 11:17

  *   04 从上面的疑问中导出RDD的概念.mp4 10:54

  *   05 实践:RDD API简单使用一.mp4 16:16

  *   06 实践:RDD API简单使用二.mp4 10:50

  *   07 理解Spark分布式内存计算的含义.mp4 13:58

  *   08 Spark Core组件解决的问题及其特点.mp4 10:52

  *   09 Spark SQL组件解决的问题及其特点一.mp4 20:33

  *   10 Spark SQL组件解决的问题及其特点二.mp4 10:34

  *   11 Spark Streaming组件(了解即可).mp4 13:22

  *   12 Spark Graphx组件(了解即可).mp4 17:23

  *   13 Spark ml组件(了解即可).mp4 11:42

*   04 Spark核心编程模型之RDD API/

  *   01 章节推荐的学习方法

  *   02 导入spark-rdd项目报错解决方式

  *   03 再次理解RDD概念.mp4 13:04

  *   04 补充课.mp4 17:24

  *   05 怎么样创建RDD(必须学习).mp4 12:40

  *   06 parallelize和makeRDD的实现原理.mp4 13:12

  *   07 RDD的依赖设计及其特点(必须学习的知识).mp4 16:41

  *   08 HashPartitioner原理(必须学习).mp4 13:42

  *   09 对RDD合理分区能提高性能(必须学习).mp4 17:16

  *   10 RangePartitioner的原理(必须学习).mp4 18:52

  *   11 Partitioner源码解析.mp4 15:52

  *   12 实战:自定义Partitioner(必须学习).mp4 10:00

  *   13 Hash对比Range Partitioner(必须学习).mp4 07:35

  *   14 实战:coalesce使用场景(非常的重要).mp4 11:02

  *   15 coalesce原理讲解.mp4 15:15

  *   16 coalesce源码解析.mp4 18:31

  *   17 单类型transformation api(必须学习).mp4 19:43

  *   18 MapPartitionsRDD的原理代码详解.mp4 12:52

  *   19 RDD的采样api(sample等)(了解即可).mp4 17:15

  *   20 RDD分层采样api(了解即可).mp4 10:54

  *   21 实践:RDD的pipe api的使用.mp4 17:41

  *   22 RDD的pipe的原理深入讲解.mp4 15:04

  *   23 单类型RDD的基本action api的讲解.mp4 20:05

  *   24 combineBykey的七大参数的详解一(必须学习).mp4 18:33

  *   25 combineBykey的七大参数的详解二(必须学习).mp4 14:57

  *   26 ShuffleRDD的原理详解.mp4 17:00

  *   27 基于combineByKey的api详解.mp4 17:11

  *   28 实践:combineBykey实战以及使用过程中需要注意的点.mp4 19:18

  *   29 reduceByKey和groupByKey的对比.mp4 08:25

  *   30 cogroup api的感官认识(必须学习).mp4 10:23

  *   31 通过原理图和源代码详解cogroup原理.mp4 17:05

  *   32 join等api的原理实现.mp4 09:27

  *   33 subtractByKey的原理(了解即可).mp4 10:33

  *   34 sortedByKey原理(了解即可).mp4 14:40

  *   35 count等计数api(了解即可).mp4 17:22

  *   36 union的使用及其原理.mp4 13:28

  *   37 intersection(了解即可).mp4 05:55

  *   38 笛卡尔积(了解即可).mp4 07:34

  *   39 zip的使用及其原理.mp4 13:54

  *   40 RDD的缓存机制,即persist.mp4 13:14

  *   41 checkpoint的作用和实现流程.mp4 13:11

  *   42 checkpoint实现原理一.mp4 09:31

  *   43 checkpoint实现原理二.mp4 10:26

  *   44 broadcast的机制及其用法(必须学习).mp4 07:36

  *   45 accumulator的使用及其自定义accumulator.mp4 10:23

  *   46 spark支持的读写存储系统.mp4 15:17

  *   47 HadoopRDD的原理和实现.mp4 09:34

  *   48 spark支持的通用的文件格式.mp4 15:18

  *   49 二进制文件的读写.mp4 09:48

  *   50 spark sql读写parquet and avro文件.mp4 15:16

  *   51 Spark Core测试试卷一

*   05 项目实战:会话切割/

  *   01 Scala集合的foldLeft函数的使用说明

  *   02 Scala 集合中的 Builder

  *   03 会话切割含义.mp4 20:00

  *   04 项目总体流程.mp4 04:31

  *   05 项目最终输出的数据结构.mp4 11:46

  *   06 maven项目搭建.mp4 11:26

  *   07 原始日志的解析逻辑实现.mp4 06:12

  *   08 加载数据.mp4 07:39

  *   09 解析原始数据.mp4 06:30

  *   10 使用kryo序列化机制.mp4 03:59

  *   11 使用flatMap API.mp4 03:51

  *   12 过滤掉非法类型的日志.mp4 04:55

  *   13 函数体中通配符的说明.mp4 04:06

  *   14 按照user进行分组处理.mp4 13:13

  *   15 单个user的Logs按照时间升序排.mp4 07:21

  *   16 会话切割逻辑实现.mp4 15:04

  *   17 会话切割逻辑实现(续).mp4 06:10

  *   18 生成会话.mp4 12:32

  *   19 计算domainLabel字段.mp4 05:46

  *   20 给会话的cookie打标签.mp4 09:21

  *   21 保存RDD数据.mp4 10:37

  *   22 输出代码重构.mp4 07:42

  *   23 输出代码重构(续).mp4 17:11

  *   24 会话切割实现逻辑重构.mp4 06:16

  *   25 会话切割实现逻辑重构(续).mp4 11:12

  *   26 debug本地Spark程序.mp4 11:51

  *   27 参数的配置化.mp4 08:35

  *   28 spark-submit简介.mp4 04:40

  *   29 集群跑会话切割应用.mp4 15:50

  *   30 给应用打印log.mp4 06:59

  *   31 统计会话的个数.mp4 06:17

  *   32 将所有依赖打成一个jar包.mp4 13:41

  *   33 解决本地跑Spark程序报错.mp4 02:04

  *   34 RDD开发练习(面试题)

*   06 Spark RDD topN问题(必须学习)/

  *   01 准备数据.mp4 25:01

  *   02 两次mapPartitions实现topN.mp4 28:23

  *   03 数据结构PriorityQueue讲解.mp4 14:38

  *   04 本地topN的实现.mp4 11:01

  *   05 mapPartition加上PriorityQueue实现t.mp4 26:16

  *   06 RDD的API-top来解决topN的问题.mp4 08:10

  *   07 Java代码怎么写Spark应用.mp4 17:32

  *   08 Spark分组topN问题.mp4 13:36

  *   09 Spark解决数据倾斜问题.mp4 21:05

  *   10 使用Spark RDD分析日志作业

  *   11 面试题_Spark去重

*   07 怎样正确提交Spark应用/

  *   01 课程内容.mp4 09:45

  *   02 java命令启动JVM.mp4 16:16

  *   03 java ProcessBuilder启动JVM.mp4 17:31

  *   04 spark-submit感官认识.mp4 12:22

  *   05 master和deploy-mode参数详解.mp4 17:25

  *   06 正确的yarn-client模式.mp4 04:50

  *   07 --conf参数详解.mp4 07:28

  *   08 driver相关参数的详解.mp4 12:10

  *   09 executor相关参数的详解.mp4 14:58

  *   10 Spark on Yarn资源分配.mp4 14:57

  *   11 --jars参数详解(必须学习).mp4 12:20

  *   12 --package相关参数详解.mp4 07:15

  *   13 --files与--properties-file参数详解.mp4 08:24

  *   14 --queue相关参数的详解.mp4 07:43

  *   15 python spark正确提交(了解即可).mp4 07:56

  *   16 利用SparkLauncher在代码中提交spark应用.mp4 10:19

  *   17 spark脚本系统.mp4 11:30

  *   18 源码学习方式

  *   19 spark-class脚本原理以及实现.mp4 13:09

  *   20 spark-daemon脚本原理以及实现.mp4 10:26

  *   21 SparkSubmit原理以及源码分析.mp4 20:27

*   08 Schedulers On Driver/

  *   01 课程内容.mp4 14:59

  *   02 stage的划分(必须学习).mp4 16:37

  *   03 stage的调度(必须学习).mp4 13:23

  *   04 taskset调度的先进先出(FIFO)机制(必须学习).mp4 11:45

  *   05 实战:实现taskset调度的公平调度(FAIR)(必须学习.mp4 18:47

  *   06 taskset调度的公平调度(FAIR)机制需要注意的点.mp4 08:58

  *   07 task调度的本地性级别定义.mp4 20:32

  *   08 task调度的延迟调度讲解一.mp4 21:01

  *   09 task调度的延迟调度讲解二.mp4 14:57

  *   10 task调度的推测机制.mp4 08:14

  *   11 task调度的黑名单机制.mp4 10:06

  *   12 task调度的黑名单机制使用场景.mp4 07:41

  *   13 一个Spark应用中的Job的数量.mp4 07:04

  *   14 第二个Job的Stage的数量.mp4 15:27

  *   15 默认情况下的Task的数量.mp4 11:50

  *   16 分区调整场景一.mp4 03:22

  *   17 分区调整场景二.mp4 10:31

  *   18 分区调整场景三.mp4 05:28

  *   19 分区调整场景四.mp4 06:51

  *   20 总结RDD控制分区的方式.mp4 05:36

  *   21 executor资源的管理.mp4 08:54

  *   22 task的launch流程及其需要注意的点.mp4 10:28

  *   23 task的statusUpdate流程.mp4 16:28

  *   24 schedulers on driver的总体流程(必须学习.mp4 06:08

  *   25 源码学习方式

  *   26 源码讲解之schedulers的初始化.mp4 14:33

  *   27 源码讲解之job提交流程.mp4 16:29

  *   28 源码讲解之task结果处理.mp4 09:43

  *   29 Spark Scheduler的总结说明

  *   30 动态资源分配机制(必须学习).mp4 13:12

  *   31 External shuffle service机制(必须掌.mp4 08:59

  *   32 实操:开启External shuffle service机.mp4 13:26

  *   33 Spark Core测试试卷二

*   09 Spark Job调优/

  *   01 如何调优Spark Job