2017-02-13 5 views
1

У меня есть одно задание, которое займет много времени для работы с DataProc. Между тем мне нужно иметь возможность запускать другие небольшие задания.Как запустить два параллельных задания в Google Dataproc

Из того, что я мог собрать из документации Google Dataproc, платформа должна поддерживать несколько заданий, поскольку она использует динамическое распределение YARN для ресурсов.

Однако, когда я пытаюсь запустить несколько заданий, они попадают в очередь и один не запускается до тех пор, пока кластер не станет свободным.

Все настройки по умолчанию. Как включить одновременное выполнение нескольких заданий?

ответ

2

Dataproc действительно поддерживает несколько одновременных заданий. Тем не менее, его способность размещать несколько заданий зависит от того, что пряжа имеет доступную емкость для размещения главного приложения (или задания будет поставлена ​​в очередь) или фактических работников (или работа займет много времени).

Количество контейнеров, которые запрашивает ваша более крупная работа, зависит от количества разделов. С настройками по умолчанию рабочий Dataproc будет поддерживать 2 задания Mapper или Reducer. Если вы обрабатываете 100 файлов, и каждый файл представляет собой раздел, теперь будет выделена вся емкость кластера.

Там несколько вещей, которые вы могли бы сделать:

  • Выполнить меньшие задания на отдельном кластере. Ваша идеальная конфигурация кластера - это когда одно задание занимает весь кластер или N заданий равномерно распределяет кластер

  • Добавить дополнительных работников в ваш текущий кластер и/или провести эксперимент с превентивными работниками (вы можете использовать команду clusters update для изменения размера [2])

  • (Advanced) Эксперимент с различными планировщиками пряжи (см [1] для добросовестной планировщик с очередей)

[1] https://blog.cloudera.com/blog/2016/06/untangling-apache-hadoop-yarn-part-4-fair-scheduler-queue-basics/

[2] https://cloud.google.com/sdk/gcloud/reference/dataproc/clusters/update

Смежные вопросы