Диспетчер приложений в настройке YARN
У меня есть настройка 1 Name Name, 2 Data Nodes, 1 Resource Manager и 2 Node Managers. Все компоненты работают как контейнеры Docker. Каждый раз, когда я выполняю подачу искры (режим кластера пряжи) с 2 машин (2 клиента), задание выполняется последовательно. Job1 и Job2 оба переходят в состояние "Принят", Job1 переходит в состояние "Выполнено" и "Завершено", а затем выбирается "Job2" и заканчивает свое выполнение. Есть ли способ, которым эти задания выполняются параллельно? Как Менеджер приложений выбирает эти задачи, чтобы передать его менеджеру узла?
1 ответ
Настройка кластера использует YARN Capacity Scheduler
, который используется по умолчанию в большинстве доступных дистрибутивов Hadoop. Если один и тот же пользователь отправляет несколько заданий, они попадают в одну и ту же очередь пользователя, следующую за FIFO. Это стандартное поведение планировщика емкости.
Fair Scheduler
Можно настроить параллельное выполнение заданий путем совместного использования доступных ресурсов.
Добавить эту недвижимость в yarn-site.xml
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
Настройте честный планировщик queues
в файле размещения,
<property>
<name>yarn.scheduler.fair.allocation.file</name>
<value>/path/to/allocation-file.xml</value>
</property>
Если это свойство не настроено, очередь на пользователя будет создана по умолчанию.