0

Предположим, что искровое задание состоит из двух этапов с независимыми зависимостями (они не зависят друг от друга), и они отправляются одновременно/одновременно (как Tasksets) планировщиком DAG в планировщик задач. Может ли кто-нибудь дать более подробное представление о том, как ядра, доступные для исполнителей, распределены между двумя готовыми этапами/Tasksets? Точнее:Представление задания параллельного этапа Spark tasket

  • Задачи со второго набора задач/этапа не запускаются до тех пор, пока задачи предыдущего этапа установки/этапа не завершатся? или,

  • Задачи из обеих наборов задач могут быть запущены (предоставленные ядра) одновременно в зависимости от логики, реализованной taskcheduler, например. FIFO/Fair?

В общем предположим новое предложение ресурса вызвало TaskScheduler принимать решение, чтобы выбрать несколько готовых задач (из п готовых taksets) для исполнения? какова логика, выполняемая taskcheduler в таком случае?

Спасибо.

ответ

0

Это зависит от режима планирования, который используется. В TaskSchedulerImpl.scala конструктор анализирует режим планирования на основе флага «spark.scheduler.mode». По умолчанию используется FIFO, в котором случае все ядра сначала передаются первому набору задач перед тем, как предлагается для второго набора задач.