如果你已经会写 Spark 的 RDD 转换,也能跑通 Flink 的 WordCount,但一到真实项目就卡在「数据倾斜怎么调」「状态后端选哪种」「两套引擎到底谁干哪段」——这门课补的就是这一段。它不负责把你从零带进大数据,默认你已经碰过 Linux、SQL、Hadoop,直接冲着 Spark 和 Flink 的工程细节去。

先确认你缺的是哪一块

这门课叫「全栈训练营」,但全栈不等于什么都讲。它的起点是 Linux 操作回顾和 MySQL/SQL 回顾,也就是说,如果你连命令行和基本查询都生疏,前几节会过得比较吃力;反过来,如果你已经能熟练用 SQL 做聚合、能看懂 Hadoop 的 HDFS 和 YARN 在干什么,那前面这些回顾可以当热身,重点在后半段的引擎部分。

真正需要你补的缺口通常有三个:一是 Spark 里 shuffle、分区、缓存这些概念只停留在 API 层面,不知道背后发生了什么;二是 Flink 的时间语义、水位线、检查点只在文档里见过,没在代码里调过;三是 Spark 和 Flink 各自适合什么场景,选型时说不清理由。这门课的结构基本是围着这三个缺口走的。

Spark 部分:从「会调 API」到「知道为什么慢」

Spark 的内容不会停在算子列表上。你需要关注的是一些平时容易被跳过的问题:同样的逻辑,为什么换一种写法 shuffle 数据量差好几倍;广播变量和累加器在什么情况下才真正起作用;Spark SQL 和 DataFrame 的 Catalyst 优化到底改了你的哪段执行计划。这些不是背下来的知识点,而是要靠课后自己拿数据反复试的。

配套练习里,Hadoop 的部分占了不小篇幅,这不是凑数。Spark 跑在 YARN 上,资源申请、队列、容器内存这些配置直接决定任务能不能起来。如果你之前只在本地模式跑过 Spark,这部分会暴露不少环境层面的问题。

Flink 部分:流处理的门槛在状态和时间

Flink 比 Spark 更容易「看起来会了」。算子能连起来,窗口能开出来,但一到乱序数据、迟到数据、作业重启恢复,问题就集中爆发。这门课在这块的讲法偏工程:水位线怎么设、允许延迟和侧输出怎么配合、检查点和保存点分别解决什么问题、状态后端换 RocksDB 之后性能曲线怎么变。

另一个值得留意的是两套引擎的对照。同一份业务逻辑,用 Spark Structured Streaming 写一遍,再用 Flink 写一遍,你会更清楚批流一体的说法在工程上具体指什么,也能判断什么团队适合只维护一套栈。

看完你应该能回答的问题

  • 一个 Spark 作业变慢,你会按什么顺序排查,先看 shuffle 还是先看数据倾斜?
  • Flink 作业从检查点恢复后,状态和算子链分别发生了什么变化?
  • 什么情况下用 Spark 处理实时数据是合理的,什么情况下必须上 Flink?
  • YARN 上的资源队列和 Spark 的 executor 内存配置之间是怎么互相制约的?

如果这些问题你现在答不全,说明缺的正好是这门课覆盖的范围。它适合当作查漏补缺的对照表来用:先自己答一遍,再挑对应章节去看,比从头顺着播效率高得多。

2021全新升级版-若泽数据Spark+Flink全栈训练营(高级班)

Spark与Flink全栈实战

编辑点评

深入Spark与Flink技术栈,涵盖大数据处理与流处理,适合有基础想进阶的大数据开发者。

⭐ 编辑推荐

全面升级,实战导向,掌握Spark与Flink全栈技能,助力大数据项目实战。

课程亮点

• Spark与Flink全栈教学
• 实战项目驱动
• 深入浅出讲解大数据处理

课程目录

02Linux快速入门回顾二.mp4  112.38M
02Linux快速入门回顾一.mp4  126.86M
03MySQL&SQL快速入门回顾二.mp4  112.72M
03MySQL&SQL快速入门回顾一.mp4  108.12M
01-Scala是什么.mp4  94.07M
02-为什么要学Scala.mp4  29.33M
03-Java和Scala的关系.mp4  42.64M
04-Scala安装.mp4  147.78M
05-Scala快速入门.mp4  38.29M
06-Maven部署.mp4  108.24M
07-IDEA整合Maven本地开发环境搭建.mp4  51.74M
08-使用IDEA开发第一个Scala应用程序.mp4  52.56M
09-代码注释.mp4  120.14M
10-Scala标识符.mp4  27.58M
11-var和val.mp4  146.44M
12-读取终端数据.mp4  76.91M
01-上次课回顾.mp4  25.87M
02-数据类型概述.mp4  93.42M
03-整型.mp4  18.66M
04-浮点类型.mp4  13.33M
05-Char类型.mp4  20.18M
06-Boolean类型.mp4  8.92M
07-类型转换.mp4  20.29M
08-字符串操作.mp4  103.94M
09-运算符.mp4  28.03M
10-if语句.mp4  86.29M
11-while循环.mp4  100.22M
12-跳出while循环.mp4  43.87M
13-for循环.mp4  131.23M
14-function的定义和使用.mp4  104.63M
15-默认参数.mp4  41.82M
16-命名参数.mp4  16.33M
17-可变参数.mp4  63.41M
18-递归.mp4  70.60M
06Hadoop一01.mp4  163.91M
06Hadoop一02.mp4  250.83M
01-上次课回顾.mp4  33.88M
02-面向对象三大特性.mp4  11.83M
03-类和对象.mp4  23.45M
04-类的定义和使用.mp4  207.29M
05-占位符.mp4  28.01M
06-构造器.mp4  163.98M
07-继承和重写.mp4  108.28M
08-抽象类.mp4  111.59M
09-伴生类和伴生对象.mp4  132.88M
10-case class.mp4  70.08M
11-导包.mp4  62.91M
12-package object.mp4  62.35M
13-Type.mp4  237.02M
14-枚举.mp4  29.85M
15-单Trait.mp4  61.14M
16-多trait.mp4  59.10M
17-多Trait的顺序问题.mp4  79.84M
18-动态混入.mp4  22.76M
19-App Trait.mp4  49.38M
01-jUnit快速入门.mp4  254.21M
02-API操作之创建文件夹.mp4  148.44M
03-API操作之创建文件夹02.mp4  34.83M
04-API操作之参数设置优先级问题.mp4  198.48M
05-API操作之代码重构.mp4  60.61M
06-API操作之下载.mp4  40.18M
07-API操作之移动.mp4  21.80M
08-API操作之文件列表.mp4  76.86M
09-API操作之删除.mp4  17.14M
10-API操作之IO流操作.mp4  76.31M
09Hadoop二01.mp4  162.47M
09Hadoop二02.mp4  197.24M
10Hadoop三01.mp4  89.22M
10Hadoop三02.mp4  191.05M
11Hadoop四01.mp4  220.70M
11Hadoop四02.mp4  97.79M
12Hadoop五01.mp4  147.58M
12Hadoop五02.mp4  132.33M
01-上次课回顾.mp4  10.12M
02-模板方法模式.mp4  50.46M
03-HDFS API编程需求分析.mp4  43.62M
04-HDFS API编程实现01.mp4  72.96M
05-HDFS API编程实现02.mp4  159.00M
06-HDFS API编程实现03.mp4  34.24M
07-HDFS API编程实现04.mp4  119.97M
08-MapReduce概述.mp4  77.08M
09-MapReduce宏观上的流程(一定要掌握).mp4  37.71M
10-WC开发之Mapper和Reducer.mp4  175.27M
11-WC开发之Driver及测试.mp4  122.48M
12-WC开发之打包到服务器运行.mp4  100.63M
01-上次课回顾.mp4  40.15M
02-Mapper类源码分析.mp4  91.83M
03-Reducer类源码分析.mp4  21.53M
04-Debug方式运行MapReduce观察内部参数值.mp4  87.18M
05-Hadoop序列化接口Writable.mp4  115.98M
06-流量统计开发01.mp4  187.43M
07-流量统计开发02.mp4  129.18M
08-认识MR执行流程中核心类.mp4  76.32M
09-MapTask个数01.mp4  65.47M
10-MapTask个数02.mp4  253.71M
11-FileInputFormat案例.mp4  108.21M
12-KeyValueTextInputFormat案例.mp4  306.90M
13-NLineInputFormat案例.mp4  176.85M
14-DBInputFormat案例.mp4  211.84M
01-上次课回顾.mp4  53.64M
02-Partitioner.mp4  184.22M
03-Combiner.mp4  109.27M
04-Counter.mp4  160.41M
05-全局排序.mp4  254.98M
06-分区排序.mp4  59.26M
07-OutputFormat.mp4  56.30M
08-自定义OutputFormat.mp4  291.39M
09-groupby.mp4  149.35M
10-distinct.mp4  91.56M
01-上次课回顾.mp4  27.71M
02-ReduceJoin原理.mp4  129.60M
03-ReduceJoin之自定义序列化类.mp4  55.94M
04-ReduceJoin之Mapper开发.mp4  211.27M
05-ReduceJoin之Reducer开发.mp4  233.37M
06-ReduceJoin之小结.mp4  15.94M
07-MapJoin原理.mp4  24.65M
08-MapJoin代码实现.mp4  384.27M
09-压缩.mp4  159.75M
10-解压缩.mp4  69.09M
11-MR整合压缩.mp4  205.32M
12-提交流程源码分析01.mp4  180.93M
13-提交流程源码分析02.mp4  351.22M
01-作业提交流程源码总结.mp4  304.21M
02-MR官网解读.mp4  247.62M
03-MR官网解读续.mp4  105.99M
04-MR过程.mp4  90.87M
05-MR涉及到的参数.mp4  266.50M
021-Hive01.mp4  434.63M

适合人群

  • 大数据开发工程师
  • 数据分析师
  • 有志于大数据领域的技术人员

学习收获

掌握Spark与Flink核心概念
学会大数据处理与流处理
提升大数据项目实战能力

祝您学习愉快!

学有所成,前程似锦!