saprk调优

本文详细介绍了Spark调优的五大方面:资源调优,包括内存和JVM调优;算子调优,如RDD复用、持久化和广播变量;Shuffle调优,涉及缓冲区大小、重试次数和间隔;以及数据倾斜问题的解决方法,包括过滤、提高并行度、双重聚合和Map Join。通过这些策略,可以显著提升Spark作业的性能和稳定性。
摘要由CSDN通过智能技术生成
一、资源调优(内存调优)

​ spark调优的第一点就是为任务分配更多的资源,在一定范围内增加资源跟性能的提升是 成正比的。实现资源优化的基础上在考虑后面的性能调优。

​ 资源的分配在任务提交的时候指定。调节的原则:尽可能将任务分配的资源调节到可以使用是资源的最大限度。

举例:
bin/spark-submit \
--class com.spark.Test \
--num-executor 80 \
--driver-memory 6g \
--executor-memory 6g \
--executor-cores 3 \
--master yarn-cluster \
--conf spark.yarn.executor.memoryOverhead=2048\
--conf spark.core.connection.ack.wait.timeout=300 \
/opt/test/spark.jar \
名称 说明
num-executor 配置Executor的数量
driver-memory 配置Driver内存
executor-memory 配置每个Executor的内存大小
executor-cores 配置每个Executor的CPU的core数量

在对各项资源调节后,可以对性能进行调节。如下所示

名称
增加Executor的个数 在资源允许的情况下,合理增加Executor的个数可以调高task的并行度
增加每个Executor的CPU core的个数 在资源允许的情况下,合理增加每个Executor的CPU core的个数,可以调高task的并行度
增加每个Executor的内存量 在资源允许的情况下,合理增加Executor的内存量后对性能提升有三点:1.可以缓存更多的数据(就是对RDD进行cache)减少了磁盘IO。2.可以为shuffle提供更多的内存,即有更多的空间来存放reduce端拉取的 数据,写入磁盘的数据相对减少,甚至可以不写入磁盘,减少可能的磁盘IO。3.可以为task的执行提供更多的内存,在task的执行工程中国可能创建很多对象,内存较小时会引发频繁的GC,增加内存后,可以避免频繁的GC,提升整体的性能。

2.对RDD进行优化

​ 2.1RDD复用

​ 在对RDD进行算子时,要避免相同算子和计算逻辑之下,对RDD进行重复计算。

​ 2.2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>