Я не совсем понимаю параметр spark.task.cpus
. Мне кажется, что "задача" соответствует "потоку" или "процессу", если хотите, внутри исполнителя. Предположим, что я установил "spark.task.cpus" в 2.
-
Как поток может использовать два процессора одновременно? Не могли ли потребовать блокировки и вызвать проблемы синхронизации?
-
Я смотрю на функцию
launchTask()
в deploy/executor/Executor.scala, и я не вижу понятия "количество процессоров для каждой задачи" здесь. Итак, где/как Spark в конечном итоге выделяет более одного процессора для задачи в автономном режиме?