在配置spark作业时,我有时看到有人建议每个执行器的核心数大于核心总数除以执行器数。
值得注意的是,在本例中,@0x0fff建议如下:
--num-executors 4 --executor-memory 12g --executor-cores 4
如果我们计算执行器核心的总数 4 cores per executor
* 4 executors total
= 16 cores total
.
然而,在问题的开头,它说“我有一个namenode和两个datanode,每个有30gb的ram,每个有4个核”。所以,核心的总数是 2 worker nodes
* 4 cores each
= 8 cores
.
有没有可能 16 cores
利用者 4 executors
用这个硬件?如果是,怎么做?
1条答案
按热度按时间q35jwt9p1#
因此,正如我在评论中所写,spark将为每个核心旋转一个线程,我知道对于Yarn,您不能分配比执行器可用的更多的核心。如果你这么做,它就不会启动那些执行者。cloudera的这篇博客文章也对此进行了更详细的描述。