Spark Driver GC负载高

问题描述:Spark Driver GC负载高

问题建议:

1、调整内存与并发相关的参数(以下参数根据任务特点选一个或多个参数调整优化):

spark.driver.memory参数 向大调整

spark.sql.shuffle.partitions 参数向小调整

2、去掉mapjoin hit,如果用户有使用/*mapjoin*/ hit的用户建立都删除

3、如果同时收到“Spark Broadcast阈值不合理”,请优化处理“Spark Broadcast阈值不合理”报警

优化方法:

1.调整内存相关的参数。

spark.driver.memory=$[目前值]*1.5

spark.driver.cores=$[目前值]*1.5

2.如果上述优化效果不明显, 请继续按照下述方法进行优化:

  • spark.sql.shuffle.partitions 参数向小调整
  • 去掉mapjoin hit,如果用户有使用/*mapjoin*/ hit的用户建立都删除
  • 如果同时收到“Spark Broadcast阈值不合理”,请优化处理“Spark Broadcast阈值不合理”报警 , 添加参数 spark.sql.autoBroadcastJoinThreshold=-1
Dirver GC频繁,解决方法: 增加客户端内存和dirver内存
spark引擎:关闭广播
--conf  spark.driver.memory=16g --conf spark.sql.broadcastTimeout=-1;
hive引擎:
如果是python脚本,则直接加入: os.environ["HADOOP_CLIENT_OPTS"]="-Xmx16g"
如果是shell脚本, 则加入: export HADOOP_CLIENT_OPTS="-Xmx16g"
注:Dirver的内存大小不能超过cgroup的上限,否则任务会被杀掉,用户可以同步调大客户端cgroup上限

2、如果是使用spark-submit原始方式提交,观察driver-memory的值
如果未手动设置driver-memory,那cgroup应该设置成10g;
如果手动设置了driver-memory,
spark.driver.memory >= 25g,那cgroup应该大于30g
spark.driver.memory >= 20g,那cgroup应该大于25g
spark.driver.memory >= 15g,那cgroup应该大于19g
spark.driver.memory >= 10g,那cgroup应该大于13g

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值