spark 调优参数

Spark.reducer.maxSizeInFlight

默认值:48m
参数说明:该参数用于设置shuffle read任务的buff缓冲区大小,该缓冲区决定一次可以拉取多少数据。

调整建议:如果可用内存资源足够,则可以增加参数的大小(例如96m),从而减少拉取数据的次数,这可以减少网络传输的次数并提高性能。 在实践中发现,合理调整参数后,性能会提高1%至5%。

但是executor内存不足时,设置的太大,就会造成OOM导致宕机

Spark.shuffle.file.buffer

默认值:32k
参数说明:该参数用于设置shuffle write任务的bufferedOutputStream的缓冲区大小。 将数据写入磁盘文件之前,将其写入缓冲区,然后再将缓冲区写入磁盘后将其填充。

调整建议:
如果可用内存资源足够,则可以增加此参数的大小(例如64k),以减少在随机写入过程中磁盘文件溢出的次数,从而可以减少磁盘的数量。 IO时间和提高性能在实践中发现,合理调整参数后,性能将提高1%到5%。

Spark.shuffle.io.maxRetries

默认值:3
参数说明:shuffle read任务从shuffle write任务那里节点正在拉自己的数据,如果网络由于异常拉失败而失败,它将自动重试。 此参数表示可以重试的最大次数。 如果在指定的次数内进行或不成功,则可能导致作业失败。

调优建议:
对于那些包含耗时的shuffle的作业,建议增加最大重试次数(例如60次),以避免由于诸如JVM或网络的完整gc之类的因素而导致数据失败。 不稳定。 在实践中发现,对于大量数据(数十亿到数十亿的shuffle过程),调整参数可以大大提高稳定性。

spark.network.timeout

默认120s
所有网络交互的默认超时时间。 如果未配置,则将使用此配置代替spark.storage.blockManagerSlaveTimeoutMs,spark.shuffle.io.connectionTimeout,spark.rpc.askTimeout或spark.rpc.lookupTimeout。

用途
若如出现各种timeout,executor lost ,task lost
spark.network.timeout 根据情况改成300(5min)或更高

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雾岛与鲸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值