我只是想澄清在Spark中使用Threads时让我感到困惑的事情。
有人可以在Spark中确认:
每个Core只能运行一个线程,或者至少 任务槽 对应 一个核心和一个核心而且永远不会一个帖子 。
- 醇>
本地模式的情况是个例外。它使用可用线程来模拟集群模式下的可用任务槽。
-M -
答案 0 :(得分:3)
Spark中的核心是一个可以分配用于处理任务的线程,这个含义在local
和分布式模式之间没有那么大的变化。
在实践中,Spark使用大量线程用于除任务处理之外的其他目的,包括但不限于:
答案 1 :(得分:1)
您可以在Spark独立模式下使用SPARK_WORKER_CORES参数来为每个内核运行多个线程。此变量在spark-env.sh文件中设置。
单词core容易与实际的cpu core混淆,但是SPARK_WORKER_CORES参数与cpu core不相关。
(好像很久以前问过,因为我有相同的问题,请在此处发布答案)