写点什么

谈谈 spark 性能调优的方法

  • 2022-10-19
    广东
  • 本文字数:795 字

    阅读完需:约 1 分钟

前言

随着数据的不断膨胀,科技的持续进度,我们记录数据的方式也在不断变化。从最早的甲骨文,到纸质记录,再到如今用磁盘硬件收集。再说到大数据,现在普遍使用的是 hadoop 和 spark。而 spark 因其优越的性能优势,已经在逐步取代 hadoop 了。

spark 固然好用,但其学习成本较高,配置项繁多。我们要用好 spark,需要知道它的原理及特性。今天就来讲讲 spark 的性能调优方向。

性能调优的本质

当我们写完 spark 任务代码后,需要分析其瓶颈,然后优化,保证能更好的利用 spark 的性能。spark 的性能调优本质,可总结为:


  • spark 的性能调优不是一步到位的,因其涉及分布式机器的资源。补了一个短板,有可能会对其他模块带来新的问题

  • 性能调优是否有效,取决于你针对的是哪方面的提升。也许对于空间优化很好;针对时间优化不好。

  • 性能调优的方法和技巧,没有定死的,也不是一成不变。

  • 性能调优的过程就是使各个方面、各个资源都协调运行的状态。

如何定位性能瓶颈

途径可分 2 种:


  1. 凭借之前的经验判断;

  2. 通过 sparkUI 来判断:包括 DAG、stage、执行计划、executor 负载、内存和缓存等信息。


第一种途径,往往需要开发人员有较多的 spark 开发经验。比如一个任务卡在某个 task 了,凭经验大致猜测该任务有 shuffle 的存在。


而第二种途径适合任何人。我们通过 sparkUI 的信息,去分析瓶颈位置的执行情况。从而定位到具体问题。


不管哪种途径,从硬件资源的消耗入手是最快捷的方式,因为瓶颈都是体现在硬件资源上。

性能调优的方法

在 spark 中,其实方法就 2 种:


  • 从代码出发:这个我们在开发阶段就要注意起来。我们需要清楚导致性能瓶颈的常见操作,从而尽可能在开发代码时留下性能瓶颈的隐患;

  • 从 spark 配置项出发:在我们代码开发后,需要有合适的配置来运行 spark 作业。这就要求我们熟悉配置项的作用和分类。

小结

spark 的性能调优,目的就是让我们的服务器资源之间得到平衡。因为资源不是无穷尽,我们需要合理调整,让这些硬件之间协调运行,达到少产生瓶颈的状态。

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2020-06-16 加入

还未添加个人简介

评论

发布
暂无评论
谈谈spark性能调优的方法_spark_芥末拌个饭吧_InfoQ写作社区