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

时间:2018-04-23 19:20:30

标签: apache-spark yarn

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

onClick

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

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

1 个答案:

答案 0 :(得分:3)

the configuration document中很好地解释了开销选项:

  

这是一个内存,可以解决诸如VM开销,实习字符串,其他本机开销等问题。这往往随着执行程序的大小而增长(通常为6-10%)。

如果您使用其中一种非JVM客户语言(Python,R等),这还包括用户对象。