Memory 执行者能否在spark中共享核心?

Memory 执行者能否在spark中共享核心?,memory,parallel-processing,apache-spark,pyspark,mesos,Memory,Parallel Processing,Apache Spark,Pyspark,Mesos,在配置spark作业时,我有时看到有人建议每个执行器的内核数大于内核总数除以执行器数 值得注意的是,@0x0FFF建议如下: --num-executors 4 --executor-memory 12g --executor-cores 4 如果我们计算执行器核心的总数,我们将得到每个执行器的4个核心*4个执行器核心总数=16个核心总数 然而,在问题的开头,它说“我有一个NameNode和两个DataNode,每个都有30GB的RAM,每个都有4个内核”。因此,核心的总数是2个工作节点*4个

在配置spark作业时,我有时看到有人建议每个执行器的内核数大于内核总数除以执行器数

值得注意的是,@0x0FFF建议如下:

--num-executors 4 --executor-memory 12g --executor-cores 4
如果我们计算执行器核心的总数,我们将得到每个执行器的
4个核心
*
4个执行器核心总数
=
16个核心总数

然而,在问题的开头,它说“我有一个NameNode和两个DataNode,每个都有30GB的RAM,每个都有4个内核”。因此,核心的总数是
2个工作节点
*
4个核心
=
8个核心


使用此硬件时,
4个执行器是否可以使用
16个内核
?如果是,怎么做

所以,正如我在评论中所写的,Spark将为每个核心旋转一个线程
我知道,对于纱线,您不能分配比执行器可用的芯数更多的芯。如果你这样做,它就不会启动那些执行者。这一点在《来自Cloudera》中也有更详细的描述。

这更像是一个CPU核心如何与线程相关以及什么是最佳配置的问题。请看这里,这可能对您有所帮助-我在
HW
方面没有背景知识,因此我很难理解您链接的问题。我只对它与
spark
作业的配置之间的关系感兴趣。一个
线程
如何与这些“核心”、“执行器”、“节点”中的任何一个相关?据我所知,Spark将为每个核心旋转一个线程。因此,如果一个执行器有两个内核,那么该执行器将旋转两个线程并并行运行两个任务。为执行器分配的芯数超过可用芯数不会飞-至少不会在纱线上飞。我建议您阅读Cloudera的这篇优秀博文,谢谢您的评论。是的,我读过那篇文章,这是我困惑的一部分。AFAIK
Mesos
也不允许这样做。@GlennieHellesSindholt我想你应该回答这个问题<代码>核心
=
线程
几乎就是这里的全部。若它是有意义的或是被给定的经理允许的,那个就完全不同了。