需要了解如何为spark作业配置核心。我的机器最多可以有 11 Cores , 28 Gb memory
. 下面是我如何为我的spark工作分配资源和它的执行时间 4.9 mins
```
--driver-memory 2g
--executor-memory 24g
--executor-cores 10
--num-executors 6
但我浏览了多篇文章,提到核心数应该是~5,当我使用此配置运行作业时,它的执行时间增加到 `6.9 mins` ```
--driver-memory 2g \
--executor-memory 24g \
--executor-cores 5 \
--num-executors 6 \
将核心数保持在接近最大值(在我的情况下是10)会有任何问题吗?
如许多文章所建议的,将核心数保持在5有什么好处吗?
那么一般来说,在确定核数时要考虑哪些因素呢?
1条答案
按热度按时间ubof19bj1#
这完全取决于作业的行为,一个配置并不能优化所有需求。
--executor-cores
表示一台机器上的磁芯数。如果这个数字太大(>5),那么机器的磁盘和网络(将在该机器上的所有executor spark核之间共享)将产生瓶颈。如果no太小(~1),那么它将无法实现良好的数据并行性,也无法从同一台机器上的数据局部性中获益。
TLDR
:——执行官科尔斯5号没事。