• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

Spark 1.4 on Yarn的计算资源参数配置同Spark 1.2区别

SPARK wangting 1个月前 (10-12) 17次浏览

Spark 1.4 on Yarn的计算资源参数配置同Spark 1.2区别

问题:

Spark 1.4 on Yarn的计算资源参数配置同Spark 1.2有何区别。

解答:

Spark 1.2中:

  • 通过spark.cores.max控制总核数,运行时会尽可能满足。
  • 通过spark.executor.memory控制单个executor占用总内存。
  • 但在1.2中,每个executor固定占10个core,这个是写死的。所以如果申请的executor memory是50G,实际上每个core分到的内存只有50/10G = 5G

Spark 1.4 on Yarn中:

  • 通过spark.executor.instances控制executor的数目
  • 通过spark.executor.cores控制每个executor占用核数
  • 通过spark.executor.memory控制单个executor占用总内存

可见1.4中,不再通过控制总核数来控制计算资源,而是可以精确控制每个executor占用多少核数,相比1.2写死的10个更灵活。

所以1.4中如果spark.executor.cores没有设的话默认就是1了。

那么spark.executor.memory如果设成30G的话,相当于指定每个core要分到30/1 G = 30G的内存,这是很难满足的。

这里如果希望同1.2申请的计算资源相当,建议的配置应该是:

  • spark.executor.cores 10
  • spark.executor.memory 50G

这样相当于每个executor还是占了50G内存。

然后调整spark.executor.instance来满足计算需求。


喜欢 (1)