Конфигурируемые параметры кластера при запуске приложения
reysand - 7 июля, 2025 - 10:41
Параметр | Описание | Значение по умолчанию |
---|---|---|
spark.app.name | Имя приложения Spark. Отображается в интерфейсах мониторинга и логах. | |
spark.executor.memory | Объем памяти, выделяемый каждому executor'у. | 30g |
spark.executor.cores | Количество ядер CPU для каждого executor'а. | 20 |
spark.num.executors | Количество executor'ов, запускаемых для приложения. | |
spark.sql.shuffle.partitions | Число разделов по умолчанию, используемое при перемешивании данных для объединений или агрегаций. Примечание: Для структурированной потоковой передачи эта конфигурация не может быть изменена между перезапусками запросов из одного и того же места контрольной точки. | 200 |
spark.default.parallelism | Число разделов по умолчанию в RDD, возвращаемых такими преобразованиями, как join, reduceByKey и parallelize, если оно не задано пользователем. | количество ядер в кластере |
spark.files | Файлы, которые нужно отправить на все узлы кластера. | |
spark.jars | Дополнительные JAR-файлы, необходимые приложению. | |
spark.log.level | Уровень логирования Spark. При установке переопределяет любые пользовательские настройки логирования, как если бы был вызван SparkContext.setLogLevel() при запуске. Допустимые значения: "ALL", "DEBUG", "ERROR", "FATAL", "INFO", "OFF", "TRACE", "WARN". | |
spark.jars.packages | Список Maven-координат JAR-файлов через запятую, которые будут добавлены в classpath драйвера и executor'ов. Формат: groupId:artifactId:version. | |
spark.jars.excludes | Список groupId:artifactId через запятую, которые необходимо исключить при разрешении зависимостей из spark.jars.packages во избежание конфликтов. | |
spark.jars.repositories | Список дополнительных удалённых репозиториев через запятую для поиска Maven-координат, указанных в --packages или spark.jars.packages. | |
spark.archives | Список архивов через запятую, которые будут распакованы в рабочую директорию каждого executor'а. Поддерживаются .jar, .tar.gz, .tgz и .zip. Можно указать имя директории для распаковки через #, например, file.zip#directory. Экспериментальная опция. |
Примечания
- Значения параметров могут быть заданы через командную строку при запуске (--conf spark.executor.memory=4g).
- Для подробного списка всех параметров и их значений рекомендуется обращаться к официальной документации Apache Spark.
Примеры использования
spark-submit \ --conf spark.app.name="MyApp" \ --conf spark.executor.memory=4g \ --conf spark.executor.cores=2 \ --conf spark.sql.shuffle.partitions=200 \ my_script.py
Скрипт spark-runner.sh (только для работы с Python)
Для вычислений на CPU+GPU (по умолчанию):
spark-runner.sh pi.py 100
Под капотом у скрипта будет выполнятся следующая команда:
spark-submit --archives env.tar.gz#env pi.py 100
Для вычислений только на CPU (--cpu, -c):
spark-runner.sh -c pi.py 100
Что выполнит:
spark-submit --archives env.tar.gz#env \ --conf spark.plugins="" --conf spark.rapids.sql.enabled=false \ --conf spark.executor.resource.gpu.amount=0 \ --conf spark.task.resource.gpu.amount=0 test.py 100
Прочие флаги:
- --time, -t — замеряет время выполнения команды в терминале;
- --dry-run, -d — выводит команду без запуска;
- --verbose, -v — расширенный вывод для отладки.
Плагины
Помимо подключения через Maven, можно подключать локальные плагины из папки /opt/spark-plugins/.
RAPIDS Accelerator For Apache Spark
--jars /opt/spark-plugins/rapids-4-spark_2.13-25.08.0.jar
Версия Аpache Spark | Версия RAPIDS Accelerator |
---|---|
4.0.0 | Scala 2.13, v25.08.0 |
PostgreSQL JDBC
--driver-class-path /opt/spark-plugins/postgresql-42.7.7.jar --jars /opt/spark-plugins/postgresql-42.7.7.jar
Версия Java | Версия JDBC драйвера |
---|---|
8 | 42.7.5 |
8 | 42.7.6 |
8 | 42.7.7 |
- 44 просмотра