Изменение подкластера
Для каждого созданного подкластера вы можете:
- Изменить количество хостов.
- Изменить класс хостов.
- Изменить правило автомасштабирования подкластеров для обработки данных.
- Увеличить размер хранилища.
- Изменить группы безопасности.
У подкластеров также можно изменить зону доступности. В этом случае они переносятся в другую зону доступности вместе с кластером Yandex Data Processing. Процесс зависит от типа кластера:
- Миграция легковесного кластера в другую зону доступности.
- Миграция кластера с файловой системой HDFS в другую зону доступности.
Изменить количество хостов
Вы можете изменить количество хостов в подкластерах для хранения и обработки данных:
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Подкластеры.
- Нажмите на значок
для нужного подкластера и выберите пункт Редактировать. - Введите или выберите нужное количество хостов в поле Хосты.
- (Опционально) Укажите таймаут декомиссии.
- Нажмите кнопку Сохранить изменения.
Yandex Data Processing запустит операцию добавления хостов.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить количество хостов для подкластера:
-
Посмотрите описание команды CLI для изменения подкластера:
yc dataproc subcluster update --help
-
Укажите новое количество хостов в команде изменения подкластера:
yc dataproc subcluster update <имя_или_идентификатор_подкластера> \ --cluster-name=<имя_кластера> \ --hosts-count=<количество_хостов>
Идентификатор и имя подкластера можно получить со списком подкластеров в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Yandex Data Processing значение параметра
hosts_count
в блокеsubcluster_spec
соответствующего подкластера для хранения или обработки данных:resource "yandex_dataproc_cluster" "data_cluster" { ... cluster_config { ... subcluster_spec { name = "<имя_подкластера>" ... hosts_count = <число_хостов_в_подкластере> } } }
Изменить класс хостов
Важно
Изменение свойств хостов через интерфейсы Yandex Compute Cloud может привести к его неработоспособности. Чтобы изменить параметры хостов кластера, воспользуйтесь интерфейсами сервиса Yandex Data Processing: консолью управления, CLI, Terraform или API.
Вы можете изменить вычислительную мощность хостов в отдельном подкластере. Она зависит от режима размещения драйвера:
- При режиме
deployMode=cluster
, когда драйвер размещается на одном из вычислительных хостов кластера (compute
), подкластеру с хостом-мастером (master
) достаточно 4–8 ядер CPU и 16 ГБ оперативной памяти. - При режиме
deployMode=client
, когда драйвер размещается на хосте-мастере кластера, вычислительная мощность зависит от логики заданий и количества запущенных конкурентных заданий.
Подробнее о режимах размещения драйвера и потреблении вычислительной мощности см. в разделе Распределение ресурсов.
Чтобы изменить класс хостов для подкластера:
- В консоли управления
выберите каталог с кластером, в котором нужно изменить подкластер. - Выберите сервис Yandex Data Processing и выберите нужный кластер.
- Перейдите в раздел Подкластеры.
- Нажмите на значок
для нужного подкластера и выберите пункт Редактировать. - Выберите нужную платформу и конфигурацию в блоке Класс хоста.
- Укажите опциональный таймаут декомиссии.
- Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить класс хостов для подкластера:
-
Посмотрите описание команды CLI для изменения подкластера:
yc dataproc subcluster update --help
-
Запросите список доступных классов хостов (в колонке
ZONE IDS
указаны зоны доступности, в которых можно выбрать соответствующий класс):yc dataproc resource-preset list
Результат:
+-----------+--------------------------------+-------+----------+ | ID | ZONE IDS | CORES | MEMORY | +-----------+--------------------------------+-------+----------+ | b3-c1-m4 | ru-central1-a, ru-central1-b, | 2 | 4.0 GB | | | ru-central1-с | | | | ... | +-----------+--------------------------------+-------+----------+
-
Укажите нужный класс в команде изменения подкластера:
yc dataproc subcluster update <имя_или_идентификатор_подкластера> \ --cluster-name=<имя_кластера> \ --resource-preset=<класса_хоста>
Идентификатор и имя подкластера можно получить со списком подкластеров в кластере, имя кластера — со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Yandex Data Processing значение параметра
resource_preset_id
в блокеsubcluster_spec.resources
соответствующего подкластера:resource "yandex_dataproc_cluster" data_cluster { ... cluster_config { ... subcluster_spec { name = "<имя_подкластера>" ... resources { resource_preset_id = "<класс_хостов_подкластера>" ... } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
Yandex Data Processing запустит операцию изменения подкластера. При этом все хосты изменяемого подкластера будут перезапущены.
Изменить правило автомасштабирования подкластеров для обработки данных
Вы можете настроить правило автомасштабирования в подкластерах для обработки данных.
Проверьте, что в облаке хватает квоты на увеличение ресурсов виртуальных машин. Откройте страницу Квоты
- Общий объём HDD-дисков;
- Общий объём SSD-дисков;
- Количество дисков;
- Количество vCPU виртуальных машин;
- Количество виртуальных машин.
Для работы автоматического масштабирования убедитесь, что сервисному аккаунту кластера Yandex Data Processing назначены роли:
- dataproc.agent — чтобы сервисный аккаунт мог получать информацию о состоянии хостов кластера, заданиях и лог-группах.
- dataproc.provisioner — чтобы сервисный аккаунт мог взаимодействовать с автоматически масштабируемой группой ВМ. Тогда будет доступно автомасштабирование подкластеров.
Чтобы настроить автомасштабирование для подкластеров:
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Выберите кластер и перейдите на вкладку Подкластеры.
- Нажмите на значок
для нужного подкластера и выберите пункт Редактировать. - В блоке Масштабирование включите настройку Автоматическое масштабирование, если она выключена.
- Укажите параметры автоматического масштабирования.
- По умолчанию в качестве метрики для автоматического масштабирования используется
yarn.cluster.containersPending
. Чтобы включить масштабирование на основе загрузки CPU, выключите настройку Масштабирование по умолчанию и укажите целевой уровень загрузки CPU. - Нажмите кнопку Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы настроить автомасштабирование для подкластеров:
-
Посмотрите описание команды CLI для изменения подкластера:
yc dataproc subcluster update --help
-
Укажите параметры автомасштабирования в команде изменения подкластера:
yc dataproc subcluster update <имя_или_идентификатор_подкластера> \ --cluster-name=<имя_кластера> \ --hosts-count=<минимальное_количество_хостов> \ --max-hosts-count=<максимальное_количество_хостов> \ --enable-preemptible=<использование_прерываемых_ВМ> \ --warmup-duration=<время_на_разогрев_ВМ> \ --stabilization-duration=<период_стабилизации> \ --measurement-duration=<промежуток_измерения_нагрузки> \ --cpu-utilization-target=<целевой_уровень_загрузки_CPU> \ --autoscaling-decommission-timeout=<таймаут_декомиссии>
Где:
--hosts-count
— минимальное количество хостов (виртуальных машин) в подкластере. Минимальное значение —1
, максимальное —32
.--max-hosts-count
— максимальное количество хостов (виртуальных машин) в подкластере. Минимальное значение —1
, максимальное —100
.--enable-preemptible
— использование прерываемых ВМ. Может принимать значенияtrue
илиfalse
.--warmup-duration
— время в секундах на разогрев ВМ, в формате<значение>s
. Минимальное значение —0s
, максимальное —600s
(10 минут).--stabilization-duration
— период в секундах, в течение которого требуемое количество ВМ не может быть снижено, в формате<значение>s
. Минимальное значение —60s
(1 минута), максимальное —1800s
(30 минут).--measurement-duration
— период в секундах, за который замеры нагрузки усредняются для каждой ВМ, в формате<значение>s
. Минимальное значение —60s
(1 минута), максимальное —600s
(10 минут).--cpu-utilization-target
— целевой уровень загрузки CPU, в процентах. Используйте эту настройку, чтобы включить масштабирование на основе загрузки CPU, иначе в качестве метрики будет использоватьсяyarn.cluster.containersPending
(на основе количества ожидающих задания ресурсов). Минимальное значение —10
, максимальное —100
.--autoscaling-decommission-timeout
— таймаут декомиссии в секундах. Минимальное значение —0
, максимальное —86400
(сутки).
Идентификатор и имя подкластера можно получить со списком подкластеров в кластере, имя кластера — со списком кластеров в каталоге.
Чтобы настроить автомасштабирование для подкластеров:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Добавьте в описании кластера Yandex Data Processing блок
subcluster_spec.autoscaling_config
с нужными вам параметрами автоматического масштабирования для соответствующего подкластера :resource "yandex_dataproc_cluster" "data_cluster" { ... cluster_config { ... subcluster_spec { name = "<имя_подкластера>" role = "COMPUTENODE" ... autoscaling_config { max_hosts_count = <максимальное_количество_ВМ_в_группе> measurement_duration = <промежуток_измерения_нагрузки> warmup_duration = <время_на_разогрев> stabilization_duration = <период_стабилизации> preemptible = <использование_прерываемых_ВМ> cpu_utilization_target = <целевой_уровень_загрузки_vCPU> decommission_timeout = <таймаут_декомиссии> } }
Где:
max_hosts_count
— максимальное количество хостов (виртуальных машин) в подкластере. Минимальное значение —1
, максимальное —100
.measurement_duration
— период в секундах, за который замеры нагрузки усредняются для каждой ВМ, в формате<значение>s
. Минимальное значение —60s
(1 минута), максимальное —600s
(10 минут).warmup_duration
— время в секундах на разогрев ВМ, в формате<значение>s
. Минимальное значение —0s
, максимальное —600s
(10 минут).stabilization_duration
— период в секундах, в течение которого требуемое количество ВМ не может быть снижено, в формате<значение>s
. Минимальное значение —60s
(1 минута), максимальное —1800s
(30 минут).preemptible
— использование прерываемых ВМ. Может принимать значенияtrue
илиfalse
.cpu_utilization_target
— целевой уровень загрузки CPU, в процентах. Используйте эту настройку, чтобы включить масштабирование на основе загрузки CPU, иначе в качестве метрики будет использоватьсяyarn.cluster.containersPending
(на основе количества ожидающих задания ресурсов). Минимальное значение —10
, максимальное —100
.decommission_timeout
— таймаут декомиссии в секундах. Минимальное значение —0
, максимальное —86400
(сутки).
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
Увеличить размер хранилища
Важно
Изменение свойств хостов через интерфейсы Yandex Compute Cloud может привести к его неработоспособности. Чтобы изменить параметры хостов кластера, воспользуйтесь интерфейсами сервиса Yandex Data Processing: консолью управления, CLI, Terraform или API.
Вы можете увеличить размер хранилища, доступного каждому хосту в определенном подкластере.
Примечание
Уменьшить размер хранилища на данный момент невозможно. Если это необходимо, пересоздайте подкластер Yandex Data Processing.
Проверьте, что в облаке хватает квоты на увеличение ресурсов виртуальных машин. Откройте страницу Квоты
- Общий объём HDD-дисков;
- Общий объём SSD-дисков;
- Количество дисков.
Чтобы изменить размер хранилища для подкластера:
- В консоли управления
выберите каталог с кластером, в котором нужно изменить подкластер. - Выберите сервис Yandex Data Processing и выберите нужный кластер.
- Перейдите в раздел Подкластеры.
- Нажмите на значок
для нужного подкластера и выберите пункт Редактировать. - Введите или выберите нужный объем хранилища в блоке Размер хранилища.
- Нажмите кнопку Сохранить изменения.
Yandex Data Processing запустит операцию изменения подкластера.
Если у вас еще нет интерфейса командной строки Yandex Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы изменить размер хранилища для подкластера:
-
Посмотрите описание команды CLI для изменения подкластера:
yc dataproc subcluster update --help
-
Укажите нужный объем хранилища в команде изменения подкластера:
yc dataproc subcluster update <имя_или_идентификатор_подкластера> \ --cluster-name=<имя_кластера> \ --disk-size=<размер_хранилища_ГБ>
Идентификатор и имя подкластера можно получить со списком подкластеров в кластере, имя кластера — со списком кластеров в каталоге.
Если все условия выполнены, Yandex Data Processing запустит операцию по увеличению объема хранилища.
Чтобы увеличить размер хранилища для подкластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените в описании кластера Yandex Data Processing значение параметра
disk_size
в блокеsubcluster_spec.resources
соответствующего подкластера:resource "yandex_dataproc_cluster" "data_cluster" { ... cluster_config { ... subcluster_spec { name = "<имя_подкластера>" ... resources { disk_size = <объем_хранилища_ГБ> ... } } } }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
Изменить группы безопасности
- Перейдите на страницу каталога
и выберите сервис Yandex Data Processing. - Нажмите на имя нужного кластера и выберите вкладку Хосты.
- Нажмите на имя нужного хоста.
- В блоке Сеть нажмите на значок
и выберите Изменить. - Выберите нужные группы безопасности.
- Нажмите кнопку Сохранить.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
О том, как создать такой файл, см. в разделе Создание кластера.
-
Измените значение параметра
security_group_ids
в описании кластера:resource "yandex_dataproc_cluster" "data_cluster" { ... security_group_ids = [ "<список_идентификаторов_групп_безопасности_кластера>" ] }
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
Важно
Может потребоваться дополнительная настройка групп безопасности для подключения к кластеру.