Spark中每个Core的线程数

时间:2017-08-04 20:49:56

标签: apache-spark spark-streaming

我只是想澄清在Spark中使用Threads时让我感到困惑的事情。

有人可以在Spark中确认:

  
      
  1. 每个Core只能运行一个线程,或者至少 任务槽 对应 一个核心和一个核心而且永远不会一个帖子

  2.   
  3. 本地模式的情况是个例外。它使用可用线程来模拟集群模式下的可用任务槽。

  4.   

-M -

2 个答案:

答案 0 :(得分:3)

Spark中的核心是一个可以分配用于处理任务的线程,这个含义在local和分布式模式之间没有那么大的变化。

在实践中,Spark使用大量线程用于除任务处理之外的其他目的,包括但不限于:

  • 处理心跳。
  • Spark UI。
  • 广播。

答案 1 :(得分:1)

您可以在Spark独立模式下使用SPARK_WORKER_CORES参数来为每个内核运行多个线程。此变量在spark-env.sh文件中设置。

单词core容易与实际的cpu core混淆,但是SPARK_WORKER_CORES参数与cpu core不相关。

(好像很久以前问过,因为我有相同的问题,请在此处发布答案)