使用 Scala 进行 Spark 优化
快走或回家。了解 Spark 的来龙去脉,充分利用您的代码。
讲师:rockthejvm
口袋资源独家Udemy付费课程,独家中英文字幕,配套资料齐全!
用不到1/10的价格,即可享受同样的高品质课程,且可以完全拥有,随时随地都可以任意观看和分享。
为什么 $&*(# 是我的 Spark 作业运行得这么慢?
我在使用 Spark 时遇到了很多痛苦,如果您正在阅读本文,您可能也已经看到了这一点:您在一个数据集上运行一个 4 行作业,有两个无辜的连接,它需要一个血腥小时运行。或者另一个:你有一个小时的工作进展顺利,直到任务 1149/1150 挂起,再过两个小时你决定杀死它,因为你不知道是你还是 Spark 中的错误。通常,PIBKAC – 问题出在键盘和椅子之间 – 但无奈之下,你唯一的想法就是将其关闭并重新打开。
然后你会说,“嗯,也许我的 Spark 集群太小了,让我增加一些 CPU 和内存”。然后……同样的事情。亚马逊现在可能在笑,而你正在为此付出代价。所以这必须是百万美元的问题。
这是全网唯一一门可以学习如何优化Spark作业,掌握Spark优化技巧的课程。借助您在此 Spark 优化课程中学习的策略,您将节省时间、精力和金钱。
让我们改进 Spark 性能。
在这个 Spark 优化课程中,我们从根本上斩草除根。我们深入研究 Spark 性能优化,您将了解它的工作原理。如果我们编写智能代码,您就会做到这一点,我们将看到我们拥有令人难以置信的影响力。您将学习 20 多种 Spark 优化技术和策略。他们每个人都可以为您的工作提供至少 2 倍的性能提升(其中一些甚至 10 倍),我在相机上展示了它。
你会学到什么:
- 您将了解 Spark 的内部结构以及 Spark 在幕后的工作原理
- 如果一项工作需要很长时间,您将能够提前预测
- 您将在 Spark UI 中诊断性能问题
- 您将编写没有洗牌的智能连接
- 您将智能地组织数据,因此昂贵的操作不再是问题
- 您将使用 RDD 功能进行定制的高性能作业
- 您将利用 JVM 执行高性能 Spark 作业
- 仅在本课程中,您就可以节省数小时的计算时间(更不用说产品了!)
再加上一些额外的好处:
- 您将可以访问我在相机上编写的全部代码(~1400 LOC)
- 您将被邀请到我们的私人 Slack 会议室,我将在其中分享最新动态、折扣、讲座、会议和招聘机会
- (很快)您将可以访问外卖幻灯片
- (很快)您将能够下载视频以供离线观看
你将获得的技能:
- 深入了解 Spark 内部结构,以便您可以预测工作绩效
- 阶段&任务分解
- 在作业运行之前阅读查询计划
- 在作业运行时读取 DAG
- 不同 Spark API 之间的性能差异
- 打包和部署 Spark 应用程序
- 以 3 种不同的方式配置 Spark
- DataFrame 和 Spark SQL 优化
- 了解连接机制以及它们为何昂贵
- 编写广播连接,或者当你连接一个大的和一个小的 DataFrame 时该怎么做
- 编写预连接优化:列修剪、预分区
- 用于快速访问的分桶
- 修复数据倾斜、“杂乱无章”的任务和 OOM
- 优化 RDD
- “手动”使用广播加入
- 在多路连接中对 RDD 进行联合分组
- 修复数据偏差
- 编写 Spark 不会为我们生成的优化
- 优化键值 RDD,因为大多数有用的转换都需要它们
- 智能地使用不同的 _byKey 方法
- 当性能至关重要甚至几秒钟时重用 JVM 对象
- 使用强大的迭代器到迭代器模式进行任意高效处理
本课程面向需要改进作业运行时间的 Scala 和 Spark 程序员。如果您从未接触过 Scala 或 Spark,那么本课程不适合您。