Как я могу запускать задания spark по порядку?

#python #apache-spark #pyspark

#python #apache-spark #pyspark

Вопрос:

Я отправляю несколько заданий Spark. В одном задании используется один рабочий. В настоящее время у меня одновременно отправлено 30 заданий, запущено 5 заданий и ожидают 25 заданий. Однако эта операция создает большую нагрузку на сервер. (Иногда порт задания не может быть назначен, и возникает ошибка.)

Возможно ли уменьшить нагрузку при одновременном запуске 5 штук?

В настоящее время мой работающий код::

 ~/spark-submit ~test1.py amp; ~/spark-submit ~test2.py amp; ~/spark-submit ~testN.py amp; ... ~/spark-submit ~test30.py 
 

Ответ №1:

Я считаю, что с помощью и «amp;» вы используете их все одновременно.

Если вы поставите «;» вместо «amp;», и они не будут выполняться сразу, а дождитесь его завершения.

 ~/spark-submit ~test1.py ; ~/spark-submit ~test2.py ; ~/spark-submit ~testN.py ; 
~/spark-submit ~test30.py;
 

Вы также можете объединить их и выполнить n из них параллельно, например:

 ~/spark-submit ~test1.py amp; ~/spark-submit ~test2.py ; ~/spark-submit ~testN.py amp; 
~/spark-submit ~test30.py;
 

Однако это не лучший подход, а скорее быстрое решение.
Причина в том, что некоторые задания будут занимать больше времени, чем другие, и для их завершения потребуется больше времени.
Одним из решений было бы написать скрипт на python, в котором вы указываете пул заданий и запускаете 5 из них одновременно. Как только одно из них завершено, вы заменяете его другим из пула.

Комментарии:

1. Например, что я должен делать? Вы можете увидеть пример кода?