Spark 2.3.2 Создание DAG использует одно ядро ​​процессора и идет медленно - PullRequest
0 голосов
/ 23 января 2019

У меня есть большое количество довольно сложных преобразований, которые я делаю в файлах источников данных CSV, от 500 000 до 2 миллионов строк. Я вижу через пользовательский интерфейс и htop, что спарк использует только 1 процессор, и он работает на 100%, поскольку создает DAG. Как только оно попадает в действие, все 48 ядер используются на 100% (как и ожидалось).

У меня проблема в том, что создание DAG занимает 10 секунд, а остальные 47 ядер простаивают. Это происходит как в локальном режиме (master = local [*]), так и в AWS EMR (master = yarn, режим клиента). Вот моя команда для местных:

spark-submit --driver-memory=60g --driver-class-path <jar>  --class <class name> --conf spark.shuffle.partitions=48 --exclude-packages <exc. packages> --packages <packages> 

Вот мои искры-defaults.conf

spark.sql.autoBroadcastJoinThreshold    -1
spark.driver.extraJavaOptions -XX:+UseG1GC
spark.executor.extraJavaOptions  -XX:+UseG1GC

Как я могу заставить создание DAG использовать более одного ядра?

На одном этапе я обнаружил ошибку SPARK-13346, из-за которой возникли проблемы с созданием DAG из-за большой родословной. Я делаю обильную контрольную точку (и сохраняется), чтобы удалить родословную - и у меня все еще есть низкая производительность.

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