12、克制Shuffle,如何一招制胜你好,我是吴磊。 在数据分析领域,数据关联(Joins)是Shuffle操作的高发区,二者如影随从。可以说,有Joins的地方,就有Shuffle。 我们说过,面对Shuffle,开发者应当“能省则省、能拖则拖”。我们已经讲过了怎么拖,拖指的就是,把...2025-11-01Spark性能调优实战
11、Shuffle是一时无两的性能杀手你好,我是吴磊。 一提到Shuffle,你能想到什么?我想很多人的第一反应都是应用中最顽固、最难解决的性能瓶颈。 在之前的课程中,我们也不止一次地提到Shuffle,尤其是在开发原则那一讲,我还建议你遵循“能省则省、能拖则拖”的原则,在应用中尽量去避...2025-11-01Spark性能调优实战
10、调优配置项速查手册-下你好,我是吴磊。 上一讲,我们讲了硬件资源类的配置项。这一讲,我们继续说说Shuffle类和Spark SQL大类都有哪些配置项,它们的含义和作用,以及它们能解决的问题。同时,和上一讲一样,我们今天讲到的配置项也全部会围绕Executors展开。 S...2025-11-01Spark性能调优实战
9、调优配置项速查手册-上你好,我是吴磊。 对于Spark性能调优来说,应用开发和配置项设置是两个最主要也最常用的入口。但在日常的调优工作中,每当我们需要从配置项入手寻找调优思路的时候,一打开Spark官网的Configuration页面,映入眼帘的就是上百个配置项。它们有的...2025-11-01Spark性能调优实战
8、如何拓展自己的开发边界你好,我是吴磊。 从今天开始,我们就进入通用性能调优篇的学习了。这一篇,我们会从基本的开发原则、配置项、Shuffle以及硬件资源这四个方面,去学习一些通用的调优方法和技巧,它们会适用于所有的计算场景。 今天这一讲,我们先从应用开发的角度入手,去探讨...2025-11-01Spark性能调优实战
7、如何高效利用有限的内存空间你好,我是吴磊。 对于Spark这样的内存计算引擎来说,内存的管理与利用至关重要。业务应用只有充分利用内存,才能让执行性能达到最优。 那么,你知道Spark是如何使用内存的吗?不同的内存区域之间的关系是什么,它们又是如何划分的?今天这一讲,我就结合一...2025-11-01Spark性能调优实战
6、空间换时间,还是时间换空间你好,我是吴磊。 今天,我们来学习Spark的存储系统,它和我们上一讲学过的调度系统一样,都是Spark分布式计算引擎的基础设施之一。 你可能会问:“在日常的开发工作中,除了业务逻辑实现,我真的需要去关心这么底层的东西吗?”确实,存储系统离开发者比较...2025-11-01Spark性能调优实战
5、“数据不动代码动”是什么意思你好,我是吴磊。 在日常的开发与调优工作中,为了充分利用硬件资源,我们往往需要手工调节任务并行度来提升CPU利用率,控制任务并行度的参数是Spark的配置项:spark.default.parallelism。增加并行度确实能够充分利用闲置的CPU线...2025-11-01Spark性能调优实战
4、到底啥叫“内存计算”?你好,我是吴磊。 在日常的开发工作中,我发现有两种现象很普遍。 第一种是缓存的滥用。无论是RDD,还是DataFrame,凡是能产生数据集的地方,开发同学一律用cache进行缓存,结果就是应用的执行性能奇差无比。开发同学也很委屈:“Spark不是内存...2025-11-01Spark性能调优实战
3、必须要理解弹性分布式数据集你好,我是吴磊。 从今天开始,我们进入原理篇的学习。我会以性能调优为导向,给你详细讲讲Spark中的核心概念RDD和DAG,以及重要组件调度系统、存储系统和内存管理。这节课,咱们先来说说RDD。 RDD可以说是Spark中最基础的概念了,使用Spar...2025-11-01Spark性能调优实战