相关疑难解决方法(0)

为什么要增加spark.yarn.executor.memoryOverhead?

我正在尝试加入两个大型spark数据帧,并继续遇到此错误:

Container killed by YARN for exceeding memory limits. 24 GB of 22 GB physical memory used. Consider boosting spark.yarn.executor.memoryOverhead.

这似乎是spark用户之间的常见问题,但我似乎找不到关于spark.yarn.executor.memoryOverheard是什么的任何可靠描述。在某些情况下,这听起来像是在YARN杀死容器之前是一种内存缓冲区(例如,请求10GB,但YARN直到使用10.2GB时才会杀死容器)。在其他情况下,听起来好像它被用来执行某种与我要执行的分析完全分离的数据记帐任务。我的问题是:

  • spark.yarn.executor.memoryOverhead用于什么?
  • 增加这种内存而不是执行程序内存(或执行程序数量)的好处是什么?
  • 总的来说,我是否可以采取一些措施来减少spark.yarn.executor.memoryOverhead的使用(例如,特定的数据结构,限制数据帧的宽度,使用更少的执行器和更多的内存等)?

hadoop-yarn apache-spark

8
推荐指数
1
解决办法
3251
查看次数

标签 统计

apache-spark ×1

hadoop-yarn ×1