Конфигурационные параметры Spark3

Для конфигурации сервиса используйте следующие параметры, доступные в ADCM.

ПРИМЕЧАНИЕ
  • Некоторые из перечисленных параметров становятся доступны в UI ADCM после установки флага Advanced.

  • Значения, установленные в Custom-параметрах, перепишут текущие значения параметров, даже если они read-only.

Common
Параметр Описание Значение по умолчанию

Dynamic allocation (spark.dynamicAllocation.enabled)

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

false

Credential Encryption
Параметр Описание Значение по умолчанию

Encryption enable

Включает или выключает функцию шифрования учетных данных. Если опция включена, Spark хранит учетные данные (пароли настроек, учетные данные для взаимодействия с другими сервисами) в зашифрованном виде

false

Credential provider path

Путь к хранилищу ключей JCEKS

jceks://hdfs/apps/spark/security/spark.jceks

Custom jceks

Укажите значение true при использовании кастомного файла JCEKS-хранилища. Укажите значение false для использования дефолтного файла хранилища, который генерируется автоматически

false

spark3_iceberg_extensions
Параметр Описание Значение по умолчанию

version

Версия пакета spark3_iceberg_extensions

1.5.2_arenadata1

spark-defaults.conf
Параметр Описание Значение по умолчанию

spark.yarn.archive

Архив, содержащий необходимые JAR-файлы Spark для помещения в кеш YARN. Если параметр задан, он заменяет spark.yarn.jars и указанный архив используется во всех контейнерах приложения. Архив должен содержать JAR-файлы в своем корневом каталоге. Архив также может быть размещен на HDFS для ускорения распространения файлов

hdfs:///apps/spark/spark3-yarn-archive.tgz

spark.yarn.historyServer.address

Адрес Spark History server

 — 

spark.master

Менеджер кластера для соединения

yarn

spark.dynamicAllocation.enabled

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

false

spark.shuffle.service.enabled

Задействует внешний shuffle-сервис. Сервис сохраняет shuffle-файлы, созданные исполнителями. Таким образом, исполнители могут быть безопасно удалены, а процесс shuffle может продолжаться в случае сбоя исполнителя. Внешний shuffle-сервис должен быть настроен, чтобы использовать его

false

spark.eventLog.enabled

Определяет, следует ли логировать события Spark, что полезно для восстановления веб-интерфейса после завершения работы приложения

true

spark.eventLog.dir

Базовый каталог, в котором регистрируются события Spark, если spark.eventLog.enabled=true. В этом каталоге Spark создает подкаталог для каждого приложения и логирует события, относящиеся к приложению в этом каталоге. Вы можете задать единое местоположение, например каталог HDFS, чтобы History Server имел доступ к файлам истории

hdfs:///var/log/spark/apps

spark.dynamicAllocation.executorIdleTimeout

Если динамическое размещение включено и исполнитель бездействует дольше указанного времени, такой исполнитель будет удален. Дополнительные сведения доступны в документации Spark

120s

spark.dynamicAllocation.cachedExecutorIdleTimeout

Если динамическое размещение включено и исполнитель, у которого имеются блоки данных в кеше, бездействует дольше указанного времени, такой исполнитель будет удален. Дополнительные сведения доступны в документации Spark

600s

spark.history.provider

Имя класса, реализующего backend-часть истории приложения. В настоящее время Spark предоставляет только одну реализацию, которая ищет логи приложений, хранящиеся в файловой системе

org.apache.spark.deploy.history.FsHistoryProvider

spark.history.fs.cleaner.enabled

Указывает, должен ли History Server периодически удалять логи событий из хранилища

true

spark.history.store.path

Локальный каталог, в котором кешируются данные истории приложений. Если параметр задан, History Server будет хранить данные приложения на диске, а не в памяти. Данные, записанные на диск, будут повторно использованы в случае перезапуска History Server

/var/log/spark3/history

spark.serializer

Имя класса, который выполняет сериализацию объектов для отправки их по сети или для кеширования в сериализованном виде. По умолчанию работает с любым объектом, который реализует интерфейс Serializable, однако такой подход является медленным. Поэтому рекомендуется использовать org.apache.spark.serializer.KryoSerializer и настроить сериализацию Kryo для большей производительности. В значении может быть любой класс-наследник org.apache.spark.Serializer

org.apache.spark.serializer.KryoSerializer

spark.driver.extraClassPath

Дополнительные зависимости, которые будут добавлены в classpath драйвера

  • /usr/lib/hive/lib/hive-shims-scheduler.jar

  • /usr/lib/hadoop-yarn/hadoop-yarn-server-resourcemanager.jar

  • /usr/lib/spark3/jars/adb-spark-connector-assembly-release-1.0.5-spark-3.5.2_arenadata1.jar

  • /usr/lib/spark3/jars/adqm-spark-connector-assembly-release-1.0.0-spark-3.5.2_arenadata1.jar

spark.executor.extraClassPath

Дополнительные зависимости, которые будут добавлены в executor classpath

  • /usr/lib/spark3/jars/adb-spark-connector-assembly-release-1.0.5-spark-3.5.2_arenadata1.jar

  • /usr/lib/spark3/jars/adqm-spark-connector-assembly-release-1.0.0-spark-3.5.2_arenadata1.jar

spark.history.ui.port

Номер порта web-интерфейса History Server

18092

spark.ui.port

Номер порта веб-интерфейса Spark

4140

spark.history.fs.logDirectory

Директория с логами History Server

hdfs:///var/log/spark/apps

spark.sql.extensions

Классы SQL-расширений Iceberg, разделенные запятой

org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions

spark.sql.catalog.spark_catalog

Класс-имплементация каталога Iceberg

org.apache.iceberg.spark.SparkSessionCatalog

spark.sql.hive.metastore.jars

Путь к JAR-файлам, которые нужны для инициализации HiveMetastoreClient

path

spark.sql.hive.metastore.jars.path

Список путей, разделенных запятыми и указывающих на JAR-файлы, которые необходимы для инициализации HiveMetastoreClient

file:///usr/lib/hive/lib/*.jar

spark.driver.extraLibraryPath:

Путь к дополнительным нативным библиотекам для драйвера

/usr/lib/hadoop/lib/native/

spark.yarn.am.extraLibraryPath:

Путь к дополнительным нативным библиотекам для Application Master

/usr/lib/hadoop/lib/native/

spark.executor.extraLibraryPath

Путь к дополнительным нативным библиотекам для Executor

/usr/lib/hadoop/lib/native/

spark.yarn.appMasterEnv.HIVE_CONF_DIR

Путь к директории на Application Master, где хранятся настройки Hive, необходимые для запуска в кластерном режиме

/etc/spark3/conf

spark.yarn.historyServer.allowTracking

Позволяет использовать Spark History Server для интерфейса трекинга, если web UI отключен для задачи

True

spark.connect.grpc.binding.port

Номер порта для gRPC-соединения с сервером Spark Connect

15002

spark.artifactory.dir.path

Директория с артефактами Spark Connect

tmp

spark.sql.security.confblacklist

Запрещает переопределение указанных параметров для корректной работы приложения или из соображений безопасности

spark.sql.extensions

spark.history.kerberos.enabled

Указывает, должен ли History Server использовать Kerberos для входа в систему. Этот параметр необходим, если History Server обращается к файлам HDFS в защищенном кластере Hyperwave

false

spark.acls.enable

Определяет, активен ли Spark ACL (access control list). Если опция включена, выполняется проверка, имеет ли определенный пользователь права доступа на просмотр или изменение задачи Spark. Обратите внимание, что пользователь должен быть известен. Если имя пользователя null, никаких проверок не выполняется. В веб-интерфейсе можно использовать фильтры для аутентификации и установки пользователя

false

spark.modify.acls

Список пользователей, разделенных запятыми, у которых есть права на изменение приложений Spark

spark,hdfs

spark.modify.acls.groups

Список групп пользователей, разделенных запятыми, у которых есть права на изменение приложений Spark

spark,hdfs

spark.history.ui.acls.enable

Указывает, следует ли проверять списки управления доступом, чтобы разрешить пользователям просматривать приложения на History Server. Если указано true, проверка контроля доступа выполняются независимо от того, какие значения spark.ui.acls.enable установлены для отдельных приложений. Если указано false, проверки контроля доступа не выполняются для всех пользовательских интерфейсов приложений, доступных через History Server

false

spark.history.ui.admin.acls

Разделенный запятыми список пользователей, у которых есть доступ к просмотру всех приложений Spark на History Server

spark,hdfs,dr.who

spark.history.ui.admin.acls.groups

Разделенный запятыми список групп пользователей, у которых есть доступ к просмотру всех приложений Spark на History Server

spark,hdfs,dr.who

spark.ui.view.acls

Разделенный запятыми список пользователей, у которых есть доступ к просмотру приложения Spark. По умолчанию только пользователь, запустивший Spark-задачу, имеет доступ к просмотру. Использование * в качестве значения означает, что любой пользователь может иметь доступ к просмотру задачи Spark

spark,hdfs,dr.who

spark.ui.view.acls.groups

Разделенный запятыми список групп пользователей, у которых есть доступ к просмотру приложения Spark. По умолчанию только пользователь, запустивший Spark-задачу, имеет доступ к просмотру. Использование * в качестве значения означает, что любой пользователь может иметь доступ к просмотру задачи Spark. Группы пользователей предоставляет экземпляр провайдера сопоставления групп (group mapping provider), указанный в spark.user.groups.mapping

spark,hdfs,dr.who

spark.ssl.keyPassword

Пароль к приватному ключу в keystore

 — 

spark.ssl.keyStore

Путь к keystore-файлу. Путь может быть как абсолютным, так и относительным директории, в которой был запущен процесс

 — 

spark.ssl.keyStoreType

Тип используемого keystore

JKS

spark.ssl.trustStorePassword

Пароль к приватному ключу в truststore

 — 

spark.ssl.trustStoreType

Тип используемого truststore

JKS

spark.ssl.enabled

Определяет, нужно ли задействовать SSL для Spark

 — 

spark.ssl.protocol

Определяет TLS-протокол. Указанный протокол должен поддерживаться JVM

TLSv1.2

spark.ssl.ui.port

Номер порта, на котором доступен веб-интерфейс Spark с включенным SSL

4141

spark.ssl.historyServer.port

Номер порта, на котором доступен веб-интерфейс Spark History Server с включенным SSL

18092

Custom log4j.properties
Параметр Описание Значение по умолчанию

Spark3 spark-log4j2.properties

Содержит конфигурацию Log4j2, которая используется Spark

spark-log4j2.properties

Livy livy-log4j.properties

Содержит конфигурацию Log4j, которая используется Livy

livy-log4j.properties

livy.conf
Параметр Описание Значение по умолчанию

livy.server.host

Хост, на котором запускается Livy-сервер. По умолчанию Livy слушает все сетевые интерфейсы

0.0.0.0

livy.server.port

Порт, на котором запускается Livy-сервер

8999

livy.spark.master

Spark master для Livy-сессий

yarn

livy.impersonation.enabled

Определяет, следует ли Livy имперсонировать пользователей при создании новой сессии

true

livy.server.csrf-protection.enabled

Определяет, задействовать ли CSRF-защиту. Если защита включена, клиентские приложения должны добавлять HTTP-заголовок X-Requested-By для HTTP-методов POST/DELETE/PUT/PATCH

true

livy.repl.enable-hive-context

Определяет, задействовать ли HiveContext для интерпретатора Livy. Если указано значение true, hive-site.xml и classpath Livy-сервера будут определены автоматически по запросу пользователя

true

livy.server.recovery.mode

Устанавливает режим восстановления для Livy

recovery

livy.server.recovery.state-store

Определяет, где Livy хранит состояние (state) для восстановления

filesystem

livy.server.recovery.state-store.url

Если выбран тип хранилища состояния filesystem, определяет путь к каталогу хранилища. Не рекомендуется использовать файловые системы, которые не поддерживают атомарное переименование (например, S3). Например: file:///tmp/livy or hdfs:///. Для ZooKeeper необходимо указать адрес ZooKeeper-серверов. Например: host1:port1,host2:port2

/livy-recovery

livy.server.auth.type

Указывает тип аутентификации для Livy

 — 

livy.server.access_control.enabled

Определяет, включать ли контроль доступа для сервера Livy. Если установлено значение true, все входящие запросы будут проверяться на наличие у запрошенного пользователя разрешения

false

livy.server.access_control.users

Пользователи, которым разрешен доступ к Livy. По умолчанию любому пользователю разрешен доступ к Livy. Если пользователь хочет ограничить доступ, он должен перечислить всех разрешенных пользователей через запятую

livy,hdfs,spark

livy.superusers

Список разделенных запятыми пользователей, у которых есть разрешения на изменение сеанса другого пользователя, например на выполнение запросов, удаление сеанса и так далее

livy,hdfs,spark

livy.keystore

Путь к keystore-файлу. Путь может быть как абсолютным, так и относительным каталогу, в котором был запущен процесс

 — 

livy.keystore.password

Пароль для доступа к keystore-файлу

 — 

livy.key-password

Пароль для доступа к ключу в keystore-файле

 — 

livy.server.thrift.ssl.protocol.blacklist

Список запрещенных к использованию TLS-протоколов

SSLv2,SSLv3,TLSv1,TLSv1.1

Spark heap memory settings
Параметр Описание Значение по умолчанию

Spark History Server Heap Memory

Максимальный размер области Java heap для Spark History Server

1G

Spark3 Connect Heap Memory

Максимальный размер области Java heap для сервера Spark Connect

1G

ranger-spark-audit.xml
Параметр Описание Значение по умолчанию

xasecure.audit.destination.solr.batch.filespool.dir

Путь к spool-каталогу

/srv/ranger/hdfs_plugin/audit_solr_spool

xasecure.audit.destination.solr.urls

URL сервера Solr для сохранения аудит-событий. Оставьте значение пустым или установите значение NONE при использовании ZooKeeper для подключения к Solr

 — 

xasecure.audit.destination.solr.zookeepers

Указывает строку подключения ZooKeeper для подключения к Solr

 — 

xasecure.audit.destination.solr.force.use.inmemory.jaas.config

Использует in-memory JAAS-файл для соединения с Solr

 — 

xasecure.audit.is.enabled

Активирует аудит Ranger

true

xasecure.audit.jaas.Client.loginModuleControlFlag

Определяет требование к успешному завершению работы модуля. Возможные значения: required, requisite, sufficient или optional

 — 

xasecure.audit.jaas.Client.loginModuleName

Имя класса-аутентификатора

 — 

xasecure.audit.jaas.Client.option.keyTab

Имя keytab-файла, из которого необходимо получить секретный ключ принципала

 — 

xasecure.audit.jaas.Client.option.principal

Имя используемого принципала

 — 

xasecure.audit.jaas.Client.option.serviceName

Имя пользователя или сервиса, для которого выполнятся логин

 — 

xasecure.audit.jaas.Client.option.storeKey

Установите значение true, чтобы keytab-файл или ключ принципала сохранялись в учетных данных субъекта

false

xasecure.audit.jaas.Client.option.useKeyTab

Установите значение true, чтобы модуль получал ключ принципала из keytab-файла

false

ranger-spark-security.xml
Параметр Описание Значение по умолчанию

ranger.plugin.spark.policy.rest.url

URL для Ranger Admin

 — 

ranger.plugin.spark.service.name

Имя Ranger-сервиса, который содержит политики для этого экземпляра

 — 

ranger.plugin.spark.policy.cache.dir

Каталог, в котором кешируются политики Ranger после успешного извлечения из источника

/srv/ranger/spark/policycache

ranger.plugin.spark.policy.pollIntervalMs

Определяет, как часто проверять политики на предмет изменения

30000

ranger.plugin.spark.policy.rest.client.connection.timeoutMs

Время ожидания подключения Spark-плагина RangerRestClient (в миллисекундах)

120000

ranger.plugin.spark.policy.rest.client.read.timeoutMs

Тайм-аут на чтение для Spark-плагина RangerRestClient (в миллисекундах)

30000

ranger.plugin.spark.policy.rest.ssl.config.file

Путь к конфигурационному файлу RangerRestClient SSL-плагина Spark

/etc/spark3/conf/ranger-spark-policymgr-ssl.xml

ranger-spark-policymgr-ssl.xml
Параметр Описание Значение по умолчанию

xasecure.policymgr.clientssl.keystore

Путь к keystore-файлу, который использует Ranger

 — 

xasecure.policymgr.clientssl.keystore.credential.file

Путь к файлу с паролями для keystore-файла

/etc/spark/conf/ranger-spark.jceks

xasecure.policymgr.clientssl.truststore.credential.file

Путь к truststore-файлу с учетными данными

/etc/spark/conf/ranger-spark.jceks

xasecure.policymgr.clientssl.truststore

Путь к truststore-файлу, который использует Ranger

 — 

xasecure.policymgr.clientssl.keystore.password

Пароль для доступа к keystore-файлу

 — 

xasecure.policymgr.clientssl.truststore.password

Пароль для доступа к truststore-файлу

 — 

Другие параметры
Параметр Описание Значение по умолчанию

Custom spark-defaults.conf

В этой секции вы можете указать значения для кастомных параметров, которые не отображаются в интерфейсе ADCM, но могут присутствовать в конфигурационном файле spark-defaults.conf

 — 

spark-env.sh

Содержимое файла spark-env.sh, который используется для инициализации переменных окружения на worker-узлах

spark-env.sh

Custom livy.conf

В этой секции вы можете указать значения для кастомных параметров, которые не отображаются в интерфейсе ADCM, но могут присутствовать в конфигурационном файле livy.conf

 — 

livy-env.sh

Содержимое файла livy-env.sh, который используется для инициализации переменных окружения, необходимых для работы Spark3 Livy Server

livy-env.sh

spark-history-env.sh

Cодержимое файла spark-history-env.sh, который используется для инициализации переменных окружения, необходимых для работы Spark History Server

spark-history-env.sh

Ranger plugin enabled

Включает или отключает плагин Ranger

false

Компонент Spark3 Client
Параметр Описание Значение по умолчанию

adb_spark3_connector

Версия пакета adb-spark3-connector

1.0.5_3.5.x

adqm_spark3_connector

Версия пакета adqm-spark3-connector

1.0.0_3.5.x

adh_pyspark

Версия пакета adh-pyspark

3.10.4

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней