Конфигурационные параметры для запуска Spark задач

В данном разделе приведён список конфигурационных параметров, которые можно передавать при запуске задач на Spark. Для этого используется стандартный способ указания дополнительных параметров через опцию --conf основных Spark команд, таких как spark-submit, spark-shell, а также YTsaurus-обёрток над ними spark-submit-yt и spark-shell-yt.

Основные опции

Большинство опций доступны начиная с версии 1.23.0, если не указано иное.

Имя Значение по умолчанию Описание
spark.yt.write.batchSize 500000 Размер данных, отправляемых через одну операцию WriteTable
spark.yt.write.miniBatchSize 1000 Размер блока данных, отправляемого в WriteTable
spark.yt.write.timeout 60 seconds Ограничение на ожидание записи одного блока данных
spark.yt.write.typeV3.enabled (spark.yt.write.writingTypeV3.enabled до 1.75.2) true Запись таблиц со схемой в формате type_v3 вместо type_v1
spark.yt.read.vectorized.capacity 1000 Максимальное количество строк в батче при чтении через wire протокол
spark.yt.read.arrow.enabled true Использовать arrow формат для чтения данных (если это возможно)
spark.hadoop.yt.timeout 300 seconds Таймаут на чтение из YTsaurus
spark.yt.read.typeV3.enabled (spark.yt.read.parsingTypeV3.enabled до 1.75.2) true Чтение таблиц со схемой в формате type_v3 вместо type_v1
spark.yt.read.keyColumnsFilterPushdown.enabled true Использовать фильтры Spark-запроса для выборочного чтения из YTsaurus
spark.yt.read.keyColumnsFilterPushdown.union.enabled false Объединять все фильтры в непрерывный диапазон при выборочном чтении
spark.yt.read.keyColumnsFilterPushdown.ytPathCount.limit 100 Максимальное количество диапазонов таблицы при выборочном чтении
spark.yt.transaction.timeout 5 minutes Таймаут на транзакцию записывающей операции
spark.yt.transaction.pingInterval 30 seconds Периодичность пингования транзакции записывающей операции
spark.yt.globalTransaction.enabled false Использовать глобальную транзакцию
spark.yt.globalTransaction.id None Идентификатор глобальной транзакции
spark.yt.globalTransaction.timeout 5 minutes Таймаут глобальной транзакции
spark.hadoop.yt.user - Имя пользователя YTsaurus
spark.hadoop.yt.token - Токен пользователя YTsaurus
spark.yt.read.ytPartitioning.enabled true Использовать партиционирование таблиц средствами YTsaurus
spark.yt.read.planOptimization.enabled false Оптимизировать агрегации и джойны на сортированных входных данных
spark.yt.read.keyPartitioningSortedTables.enabled true Использовать партиционирование по ключам для сортированных таблиц, необходимо для оптимизации планов
spark.yt.read.keyPartitioningSortedTables.unionLimit 1 Максимальное количество объединений партиций при переходе от чтения по индексам к чтению по ключам

Опции для запуска задач напрямую

Параметр Значение по умолчанию Описание С какой версии
spark.ytsaurus.config.global.path //home/spark/conf/global Путь к документу с глобальной конфигурацией Spark и SPYT на кластере 1.76.0
spark.ytsaurus.config.releases.path //home/spark/conf/releases для релизных версий, //home/spark/conf/pre-releases для предварительных версий Путь к конфигурации релиза SPYT 1.76.0
spark.ytsaurus.distributives.path //home/spark/distrib Путь к директории с дистрибутивами Spark. Внутри этой директории структура имеет вид a/b/c/spark-a.b.c-bin-hadoop3.tgz 2.0.0
spark.ytsaurus.config.launch.file spark-launch-conf Название документа с конфигурацией релиза, который лежит внутри директории spark.ytsaurus.config.releases.path 1.76.0
spark.ytsaurus.spyt.version Совпадает с версией SPYT на клиенте Версия SPYT, которую нужно использовать на кластере при запуске Spark приложения. 1.76.0
spark.ytsaurus.driver.maxFailures 5 Максимально допустимое количество падений драйвера перед тем, как операция будет считаться неуспешной 1.76.0
spark.ytsaurus.executor.maxFailures 10 Максимально допустимое количество падений экзекьютора перед тем, как операция будет считаться неуспешной 1.76.0
spark.ytsaurus.executor.operation.shutdown.delay 10000 Максимально допустимое время в миллисекундах для ожидания завершения экзекьюторов при остановке приложения перед принудительной остановкой операции с экзекьюторами 1.76.0
spark.ytsaurus.pool - Пул планировщика, в котором необходимо запускать операции драйвера и экзекьютора 1.78.0
spark.ytsaurus.python.binary.entry.point - Функция, используемая в качестве точки входа при использовании скомпилированных Python задач 2.4.0
spark.ytsaurus.python.executable - Путь к интерпретатору python, используемый в драйвере и экзекьюторах 1.78.0
spark.ytsaurus.tcp.proxy.enabled false Используется ли TCP прокси для доступа к операции 2.1.0
spark.ytsaurus.tcp.proxy.range.start 30000 Минимальный номер порта для TCP прокси 2.1.0
spark.ytsaurus.tcp.proxy.range.size 1000 Размер диапазона портов, которые могут быть выделены для TCP прокси 2.1.0
spark.ytsaurus.cuda.version - Версия CUDA, используемая для Spark приложений. Имеет смысл, если расчеты используют GPU 2.1.0
spark.ytsaurus.redirect.stdout.to.stderr false Перенаправление вывода пользовательских скриптов из stdout в stderr 2.1.0
spark.ytsaurus.remote.temp.files.directory //tmp/yt_wrapper/file_storage Путь к кешу на кипарисе для загрузки локальных скриптов 2.4.0
spark.ytsaurus.annotations - Аннотации для операций с драйвером и экзекьюторами 2.2.0
spark.ytsaurus.driver.annotations - Аннотации для операции с драйвером 2.2.0
spark.ytsaurus.executors.annotations - Аннотации для операции с экзекьюторами 2.2.0
spark.ytsaurus.driver.watch true Флаг для выполнения мониторинга операции с драйвером при выполнении в кластерном режиме 2.4.2
spark.ytsaurus.network.project - Название сетевого проекта, в котором запускается Spark приложения 2.4.3
spark.ytsaurus.squashfs.enabled false Использование squashFS слоёв в YTsaurus джобе вместо porto слоёв 2.6.0
spark.ytsaurus.client.rpc.timeout - Таймаут, используемый в rpc клиенте для старта YTsaurus операций 2.6.0
spark.ytsaurus.rpc.job.proxy.enabled true Флаг использования rpc прокси, встроенной в job прокси 2.6.0
spark.ytsaurus.java.home /opt/jdk[11,17] Путь к домашней директории JDK, используемой в контейнерах кластера. Зависит от используемой JDK на клиентской стороне. Допустимы JDK11 и JDK17. 2.6.0

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

Для запуска задач во внутреннем кластере используется обёртка spark-submit-yt. Её параметры соответствуют параметрам команды spark-submit из дистрибутива Spark, за следующим исключением:

  • Вместо параметра --master используются параметры --proxy и --discovery-path. Они определяют, какой YTsaurus кластер будет использоваться для запуска вычислений, и в какой внутренний Spark кластер на этом YTsaurus кластере будет отправлена задача, соответственно.
Предыдущая
Следующая