Свойства компонентов
Свойства компонентов кластера, заданий и среды окружения хранятся в формате:
<ключ>:<значение>
Ключ может быть как простой строкой, так и содержать префикс, указывающий на принадлежность к определенному компоненту:
<префикс_ключа>:<тело_ключа>:<значение>
Например:
hdfs:dfs.replication : 2
hdfs:dfs.blocksize : 1073741824
spark:spark.driver.cores : 1
Изменение свойств компонентов
Изменить свойства компонентов можно:
- На уровне кластера при его создании или изменении. Переданные таким образом свойства применяются по умолчанию ко всем новым заданиям в кластере.
- На уровне отдельного задания при его создании. Переданные таким образом свойства применяются только к данному заданию и переопределяют для него свойства, заданные на уровне кластера.
Доступные свойства компонентов
Доступные свойства перечислены в официальной документации компонентов:
Префикс | Путь к файлу конфигурации | Документация |
---|---|---|
core |
/etc/hadoop/conf/core-site.xml |
Hadoop |
hdfs |
/etc/hadoop/conf/hdfs-site.xml |
HDFS |
yarn |
/etc/hadoop/conf/yarn-site.xml |
YARN |
mapreduce |
/etc/hadoop/conf/mapred-site.xml |
MapReduce |
capacity-scheduler |
/etc/hadoop/conf/capacity-scheduler.xml |
CapacityScheduler |
resource-type |
/etc/hadoop/conf/resource-types.xml |
ResourceTypes |
node-resources |
/etc/hadoop/conf/node-resources.xml |
NodeResources |
spark |
/etc/spark/conf/spark-defaults.xml |
Spark |
hbase |
/etc/hbase/conf/hbase-site.xml |
HBASE |
hbase-policy |
/etc/hbase/conf/hbase-policy.xml |
HBASE |
hive |
/etc/hive/conf/hive-site.xml |
HIVE |
hivemetastore |
/etc/hive/conf/hivemetastore-site.xml |
HIVE Metastore |
hiveserver2 |
/etc/hive/conf/hiveserver2-site.xml |
HIVE Server2 |
tez |
/etc/tez/conf/tez-site.xml |
Tez 0.9.2 |
zeppelin |
/etc/zeppelin/conf/zeppelin-site.xml |
Zeppelin |
Настройки запуска заданий указаны в особых свойствах:
-
dataproc:version
— версияdataproc-agent
, который выполняет задания, отсылает признак состояния кластера и проксирует UI. Используется для отладки. Значение по умолчанию —latest
. -
dataproc:max-concurrent-jobs
— количество одновременно запускаемых заданий. Значение по умолчанию —auto
(рассчитывается исходя из свойствmin-free-memory-to-enqueue-new-job
иjob-memory-footprint
). -
dataproc:min-free-memory-to-enqueue-new-job
— минимальное количество свободной памяти для запуска задания (в байтах). Значение по умолчанию —1073741824
(1 ГБ). -
dataproc:job-memory-footprint
— количество памяти для запуска задания на хосте-мастере кластера, используется для оценки максимального количества заданий в кластере. Значение по умолчанию —536870912
(512 МБ). -
dataproc:spark_executors_per_vm
— максимальное количество контейнеров на одном вычислительном хосте при выполнении заданий Spark. Значения по умолчанию:1
для легковесных кластеров;2
для кластеров с HDFS.
-
dataproc:spark_driver_memory_fraction
— доля памяти вычислительного хоста, резервируемая для драйвера при выполнении заданий Spark. Значение по умолчанию —0.25
.
Настройки JVM для приложений Spark, выставляемые в Yandex Data Processing по умолчанию
Для улучшения производительности работы JVM в общем случае на кластерах Yandex Data Processing выставляются следующие настройки по умолчанию:
- spark:spark.driver.extraJavaOptions:
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:MaxHeapFreeRatio=70
-XX:+CMSClassUnloadingEnabled
-XX:OnOutOfMemoryError='kill -9 %p'
- spark:spark.executor.extraJavaOptions:
-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:MaxHeapFreeRatio=70
-XX:+CMSClassUnloadingEnabled
-XX:OnOutOfMemoryError='kill -9 %p'
Если вы хотите изменить настройки JVM, передайте их в одной строке через пробел. Например, для свойства кластера spark:spark.driver.extraJavaOptions
:
-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60 -XX:MaxHeapFreeRatio=80
Примечание
Изменение свойств кластера spark:spark.driver.defaultJavaOptions
или spark:spark.executor.defaultJavaOptions
на значения, конфликтующие с настройками в extraJavaOptions
, может приводить к ошибкам конфигурации кластера.
Настройки Spark для работы с Yandex Object Storage
Для Apache Spark доступны следующие настройки:
Настройка | Значение по умолчанию | Описание |
---|---|---|
fs.s3a.access.key |
— | Идентификатор статического ключа |
fs.s3a.secret.key |
— | Секретный ключ |
fs.s3a.endpoint |
storage.yandexcloud.net |
Эндпоинт для подключения к Object Storage |
fs.s3a.signing-algorithm |
Пустое значение | Алгоритм подписи |
fs.s3a.aws.credentials.provider |
org.apache.hadoop.fs.s3a.SimpleAWSCredentialsProvider |
Поставщик учетных данных |
Подробнее см. в документации Apache Hadoop
Установка пакетов Python
Для установки дополнительных пакетов Python можно использовать пакетные менеджеры conda или pip. Передайте имя пакета в свойствах кластера следующим образом:
Пакетный менеджер | Ключ | Значение | Пример |
---|---|---|---|
conda | conda:<имя_пакета> |
Номер версии пакета согласно спецификации conda |
conda:koalas : 1.5.0 |
pip | pip:<имя_пакета> |
Номер версии пакета согласно спецификации pip |
pip:requests : 2.31.0 |
Использование Apache Spark Thrift Server
Сервис Apache Spark Thrift Server
Чтобы включить его, задайте настройку dataproc:hive.thrift.impl : spark
— сервер будет доступен на TCP-порте 10000
. По умолчанию задано значение dataproc:hive.thrift.impl : hive
— на TCP-порте 10000
запускается Apache HiveServer2, если используется сервис Hive.
Функциональность доступна начиная с версии образа 2.0.48.