spark.task.cpus和--executor-cores有什么区别

cst*_*ur4 4 multithreading apache-spark

在我的mapPartition部分中,有多线程工作要做,我使用线程池并希望并行运行任务。但是我无法区分这两个参数。我想我可以将--executor-cores设置为5,然后在任务中运行4个线程。这是正确的吗?

Ami*_*mar 5

spark.task.cpus是为每个任务分配--executor-cores的核心数,并指定每个执行者的核心数。

有执行任务的解释相差很小这里

要了解每个内核可以运行多少线程,请阅读本文

根据链接:

创建SparkContext时,每个工作程序都会启动一个执行程序。这是一个单独的进程(JVM)。执行程序将重新连接到您的驱动程序。现在,驱动程序可以向他们发送命令,例如flatMap,map和reduceByKey,这些命令是任务。

为了知道您的CPU在每个核心运行中支持的线程数lscpu 并检查的值Thread(s) per core:

  • `spark.task.cpus` 的 cli 参数是什么? (2认同)