Я все еще довольно новичок в Spark, но мне удалось создать приложение Spark, которое мне нужно для обработки данных с нашего SQL Server с использованием драйверов JDBC (мы удаляем дорогостоящие SP), приложение загружает несколько таблиц из Sql Server через JDBC в dataframes, то я делаю несколько объединений, группу и фильтр, которые, наконец, повторно вставляют некоторые данные обратно через JDBC, результаты в другую таблицу. Все это отлично работает на Spark EMR в Amazon Web Services в m3.xlarge с 2 ядрами за минуту.Почему мое приложение Spark работает только у одного исполнителя?
Мой вопрос: 1. прямо сейчас у меня есть 1 мастер и 2 ядра на кластере, но каждый раз, когда я запускаю новый шаг, кажется, из того, что я вижу на сервере истории, только 1 исполнитель используется, поскольку я могу видеть 2 перечисленных исполнителя, драйвер без использования вообще, исполнитель с обработкой id 1 вокруг 1410 задач. И я совершенно не уверен, как действовать дальше.
Также это касается AWS, но я не хотел публиковать 2 вопроса, поскольку они каким-то образом связаны, есть ли способ, которым я могу выполнить 2 шага одновременно? что означает, что у вас есть 2 искровых представления этого процесса, работающих одновременно, поскольку мы запускаем этот процесс много раз в день (он обрабатывает данные клиента). Я знаю, что я могу запустить новый кластер с шагом, но я хочу, чтобы иметь возможность быстро выполнять обработку, и просто запуск нового кластера занимает слишком много времени. Спасибо !!!
Вы используете пряжу (AWS EMR 4.x)? На что вы запускаете команду (spark-submit)? –
Да, я запускаю EMR 4.6. я запускал его много раз с разными аргументами и небольшими изменениями. «spark-submit -deploy-mode cluster --executor-memory 10g --total-executor-core 8 ...» или «spark-submit --master yarn» - кластер развертывания -num-executors 3. .. »и еще несколько изменений. –
Не случайно ли он работает (работает только на одном исполнителе) при чтении данных? Обратите внимание, что Spark, по-видимому, только параллельно считывается при чтении напрямую с HDFS. Когда он читает из любого другого источника данных, используется только один исполнитель (наткнулся на [this] (https://www.dataiku.com/learn/guide/spark/tips-and-troubleshooting.html), когда я заметил та же проблема, что и для S3). –