Диспетчер приложений в настройке 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>

Если это свойство не настроено, очередь на пользователя будет создана по умолчанию.

Другие вопросы по тегам