Spark报Total size of serialized results of 12189 tasks is bigger than spark.driver.maxResultSize

一.异常信息

Total size of serialized results of 12189 tasks is bigger than spark.driver.maxResultSize 1024M.
Total size of serialized results of 12082 tasks is bigger than spark.driver.maxResultSize 1024M.
Total size of serialized results of 12131 tasks is bigger than spark.driver.maxResultSize 1024M.
...

二.原因分析及解决方案

spark默认的maxResultSize为1024M【也就是1G】,当执行action行为时,结果数据会汇总到主节点【driver节点】,当数据量很大【或数据倾斜】且没有进行合理重分区时,就有可能出现这种情况。解决方案:

  1. 调整执行逻辑,避免汇总到主节点的数据过多。
  2. 重新分区,调用repartition(nums),参考数据的规模。
  3. 调大maxResultSize大小为2G。

调大maxResultSize方式:

  1. 在程序中增加配置:.config("spark.driver.maxResultSize", "2G")
  2. 提交命令增加参数:--conf spark.driver.maxResultSize=2048M
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章