Масштабирование тяжелого алгоритмического приложения на Python через Spark UDF - PullRequest
0 голосов
/ 01 июля 2019

Я использую Spark (более EMR 5.24.0) в качестве механизма распределенной обработки для большой рабочей нагрузки, написанной на Python-Pandas.

Рабочая нагрузка, полученная из фрейма данных Spark, как только у меня есть этот фрейм данныхЯ выполняю групповую заявку AppD UDF.Код UDF использует Numpy / Scipy как часть реализации алгоритмической части.Поскольку код на самом деле выполняется на C ++, каждый демон pyspark получает несколько процессоров (поэтому на каждом ядре исполнителя запускается несколько процессоров). Например, каждый исполнитель имеет 7 ядер, следовательно, он обрабатывает 5 разделов параллельно, каждый процесс получает ~ 2-3 ЦП, что приводит к спросу на ~ 14-21 ЦП.

Проблема в том, что у меня только 8. Итак, я подумал, а почему бы не настроить ядра исполнительного механизма на 5?Таким образом, на одного работника будет приходиться только один исполнитель, и будет доступно больше ядер.Во-первых, имеет ли этот подход смысл?

Во-вторых, есть ли другой способ настроить каждого работника для запуска только одного исполнителя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...