Есть ли способ запустить спарк-скрипты и хранить результаты параллельно с ooz ie? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть 3 спарк-скрипта, и у каждого из них есть 1 спарк sql для чтения секционированной таблицы и сохранения в каком-либо месте hdfs. У каждого скрипта есть свой оператор sql и другое расположение папки для хранения данных.

test1.py - Read from table 1 and store to location 1.
test2.py - Read from table 2 and store to location 2.
test3.py - Read from table 3 and store to location 3.

Я запускаю эти сценарии с использованием действия fork в ooz ie, и все три запускаются. Но проблема в том, что скрипты не хранят данные параллельно. Как только хранилище из одного сценария выполнено, запускается другое хранилище.

Я ожидаю, что данные всех трех таблиц будут храниться параллельно в соответствующих местах.

Я пробовал планирование FAIR и другие методы планировщика в сценариях Sparks, но они не работают. Может кто-нибудь, пожалуйста, помогите. Я застрял с этим в последние 2 дня.

Я использую AWS EMR 5.15, Spark 2.4 и Ooz ie 5.0.0.

1 Ответ

1 голос
/ 26 апреля 2020

Для планировщика емкости

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

В планировщике Capacity можно увидеть связанный приоритет Jira for Intraqueue. https://issues.apache.org/jira/browse/YARN-10073

Вы можете прочитать больше https://blog.cloudera.com/yarn-capacity-scheduler/

Для планировщика Fair

Настройка параметр "yarn.scheduler.fair.preemption" в значение "true" на сайте yarn. xml включает приоритет на уровне кластера. По умолчанию это значение равно false, т.е. не имеет преимущественного права.

Ваша проблема может быть:

1 задание занимает максимум ресурсов. Чтобы убедиться в этом, проверьте интерфейс пряжи и интерфейс Spark.

Или, если у вас более 1 очереди пряжи (кроме значения по умолчанию). Попробуйте установить User Limit Factor > 1 для используемой очереди.

...