spark性能调优的总结
【摘要】 随着数据的不断膨胀,科技的持续进度,我们记录数据的方式也在不断变化。从最早的甲骨文,到纸质记录,再到如今用磁盘硬件收集。再说到大数据,现在普遍使用的是hadoop和spark。而spark因其优越的性能优势,已经在逐步取代hadoop了。
spark固然好用,但其学习成本较高,配置项繁多。我们要用好spark,需要知道它的原理及特性。今天就来讲讲spark的性能调优方向。
前言
随着数据的不断膨胀,科技的持续进度,我们记录数据的方式也在不断变化。从最早的甲骨文,到纸质记录,再到如今用磁盘硬件收集。再说到大数据,现在普遍使用的是hadoop和spark。而spark因其优越的性能优势,已经在逐步取代hadoop了。
spark固然好用,但其学习成本较高,配置项繁多。我们要用好spark,需要知道它的原理及特性。今天就来讲讲spark的性能调优方向。
性能调优的本质
当我们写完spark任务代码后,需要分析其瓶颈,然后优化,保证能更好的利用spark的性能。 spark的性能调优本质,可总结为:
- spark的性能调优不是一步到位的,因其涉及分布式机器的资源。补了一个短板,有可能会对其他模块带来新的问题
- 性能调优是否有效,取决于你针对的是哪方面的提升。也许对于空间优化很好;针对时间优化不好。
- 性能调优的方法和技巧,没有定死的,也不是一成不变。
- 性能调优的过程就是使各个方面、各个资源都协调运行的状态。
如何定位性能瓶颈
途径可分2种:
- 凭借之前的经验判断;
- 通过sparkUI来判断:包括DAG、stage、执行计划、executor负载、内存和缓存等信息。
第一种途径,往往需要开发人员有较多的spark开发经验。比如一个任务卡在某个task了,凭经验大致猜测该任务有shuffle的存在。
而第二种途径适合任何人。我们通过sparkUI的信息,去分析瓶颈位置的执行情况。从而定位到具体问题。
不管哪种途径,从硬件资源的消耗入手是最快捷的方式,因为瓶颈都是体现在硬件资源上。
性能调优的方法
在spark中,其实方法就2种:
- 从代码出发:这个我们在开发阶段就要注意起来。我们需要清楚导致性能瓶颈的常见操作,从而尽可能在开发代码时留下性能瓶颈的隐患;
- 从spark配置项出发:在我们代码开发后,需要有合适的配置来运行spark作业。这就要求我们熟悉配置项的作用和分类。
小结
spark的性能调优,目的就是让我们的服务器资源之间得到平衡。因为资源不是无穷尽,我们需要合理调整,让这些硬件之间协调运行,达到少产生瓶颈的状态。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)