Spark性能调优实战
吴磊
FreeWheel机器学习团队负责人
新⼈⾸单¥59.9
1321 人已学习
课程目录
已更新 21 讲 / 共 32 讲
0/4登录后,你可以任选4讲全文学习。
课前必学 (3讲)
开篇词 | Spark性能调优,你该掌握这些“套路”
免费
01 | 性能调优的必要性:Spark本身就很快,为啥还需要我调优?
02 | 性能调优的本质:调优的手段五花八门,该从哪里入手?
原理篇 (5讲)
03 | RDD:为什么你必须要理解弹性分布式数据集?
04 | DAG与流水线:到底啥叫“内存计算”?
05 | 调度系统:“数据不动代码动”到底是什么意思?
06 | 存储系统:空间换时间,还是时间换空间?
07 | 内存管理基础:Spark如何高效利用有限的内存空间?
通用性能调优篇 (12讲)
08 | 应用开发三原则:如何拓展自己的开发边界?
09 | 调优一筹莫展,配置项速查手册让你事半功倍!(上)
10 |调优一筹莫展,配置项速查手册让你事半功倍!(下)
11 | Shuffle的工作原理:为什么说Shuffle是一时无两的性能杀手?
12 | 广播变量(一):克制Shuffle,如何一招制胜!
13 | 广播变量(二):有哪些途径让Spark SQL选择Broadcast Joins?
14 | CPU视角:如何高效地利用CPU?
15 | 内存视角(一):如何最大化内存的使用效率?
16 | 内存视角(二):如何有效避免Cache滥用?
17 | 内存视角(三):OOM都是谁的锅?怎么破?
18 | 磁盘视角:如果内存无限大,磁盘还有用武之地吗?
19 | 网络视角:如何有效降低网络开销?
Spark SQL 性能调优篇 (1讲)
20 | RDD和DataFrame:既生瑜、何生亮
Spark性能调优实战
15
15
1.0x
00:00/00:00
登录|注册

20 | RDD和DataFrame:既生瑜、何生亮

吴磊 2021-04-28
你好,我是吴磊。
从今天开始,我们进入 Spark SQL 性能调优篇的学习。在这一篇中,我会先带你学习 Spark SQL 已有的优化机制,如 Catalyst、Tungsten 这些核心组件,以及 AQE、DPP 等新特性。深入理解这些内置的优化机制,会让你在开发应用之初就有一个比较高的起点。然后,针对数据分析中的典型场景,如数据关联,我们再去深入探讨性能调优的方法和技巧。
今天这一讲,我们先来说说 RDD 和 DataFrame 的渊源。这也是面试的时候,面试官经常会问的。比如说:“Spark 3.0 大版本发布,Spark SQL 的优化占比将近 50%;而像 PySpark、Mllib 和 Streaming 的优化占比都不超过 10%,Graph 的占比几乎可以忽略不计。这是否意味着 Spark 社区逐渐放弃了其他计算领域,只专注于数据分析?”
这个问题的标准答案是:“Spark SQL 取代 Spark Core,成为新一代的引擎内核,所有其他子框架如 Mllib、Streaming 和 Graph,都可以共享 Spark SQL 的性能优化,都能从 Spark 社区对于 Spark SQL 的投入中受益。”不过,面试官可没有那么好对付,一旦你这么说,他 / 她可能会追问:“为什么需要 Spark SQL 这个新一代引擎内核?Spark Core 有什么问题吗?Spark SQL 解决了 Spark Core 的哪些问题?怎么解决的?”
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Spark性能调优实战》,如需阅读全部文章,
请订阅文章所属专栏新⼈⾸单¥59.9
立即订阅
登录 后留言

精选留言(1)

  • sky_sql
    RDD是Spark对于分布式数据模型的抽象,调度、存储都是RDD维度的,DataFrame底层是使用RDD的算子实现的吧?
    对于普通开发者后面使用DataFrame实现业务逻辑,尽量不使用RDD?

    作者回复: DataFrame底层不是RDD实现的,DataFrame和RDD是两套独立的API。区别在于,RDD的优化引擎是Spark Core;而DataFrame的优化引擎是Spark SQL,这个我们后面3讲:21、22、23会详细的介绍哈~

    对于开发者来说,强烈推荐DataFrame开发API,放弃RDD开发API。Spark SQL的优化机制远胜于Spark Core,换句话说,同样的业务应用,仅仅是API不同,你用DataFrame开发的code,天然地就比你用RDD开发的code,在执行效率上面更高,啥都不用调优,天然就更快。

    2021-04-28
    1
收起评论
1
返回
顶部