Изменение кластера Apache Spark™
После создания кластера вы можете изменить его основные и дополнительные настройки:
- имя и описание кластера;
- сервисный аккаунт;
- группы безопасности;
- конфигурацию драйверов и исполнителей;
- дополнительные настройки кластера.
Подробнее о других изменениях кластера:
Изменить имя и описание кластера
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Apache Spark. - Выберите кластер и нажмите Редактировать на панели сверху.
- В блоке Базовые параметры измените имя, описание кластера и метки.
- Нажмите Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить имя и описание кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-spark cluster update --help -
Измените имя и описание кластера, выполнив команду:
yc managed-spark cluster update <имя_или_идентификатор_кластера> \ --new-name <имя_кластера> \ --description <описание_кластера>Где:
--new-name— уникальное имя кластера в рамках облака.--description— описание кластера.
Имя и идентификатор кластера можно получить со списком кластеров в каталоге.
Внимание
Не изменяйте имя кластера с помощью Terraform. Это приведет к удалению существующего кластера и созданию нового.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию файла описана в разделе Создание кластера.
-
Измените в описании кластера значение параметра
description:resource "yandex_spark_cluster" "<имя_кластера>" { ... description = "<описание_кластера>" ... }Где
description— описание кластера. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ <список_изменяемых_параметров> ] }, "name": "<имя_кластера>", "description": "<описание_кластера>" }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
name— уникальное имя кластера в рамках облака. -
description— описание кластера.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить сервисный аккаунт
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Managed Service for Apache Spark. -
Выберите кластер и нажмите Редактировать на панели сверху.
-
В блоке Базовые параметры выберите сервисный аккаунт или создайте новый с ролью
managed-spark.integrationProvider. Это даст кластеру нужные права для работы с другими ресурсами.Для изменения сервисного аккаунта в кластере Managed Service for Apache Spark™ убедитесь, что вашему аккаунту в Yandex Cloud назначена роль iam.serviceAccounts.user или выше.
-
Нажмите Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить сервисный аккаунт:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-spark cluster update --help -
Измените сервисный аккаунт, выполнив команду:
yc managed-spark cluster update <имя_или_идентификатор_кластера> \ --service-account-id <идентификатор_сервисного_аккаунта>Где
--service-account-id— идентификатор сервисного аккаунта для доступа к сервисам Yandex Cloud. Сервисному аккаунту должна быть назначена рольmanaged-spark.integrationProvider.Имя и идентификатор кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию файла описана в разделе Создание кластера.
-
Измените в описании кластера значение параметра
service_account_id:resource "yandex_spark_cluster" "<имя_кластера>" { ... service_account_id = "<идентификатор_сервисного_аккаунта>" ... }Где
service_account_id— идентификатор сервисного аккаунта. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "service_account_id" ] }, "service_account_id": "<идентификатор_сервисного_аккаунта>" }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
service_account_id— идентификатор сервисного аккаунта.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить группы безопасности
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Apache Spark. - Выберите кластер и нажмите Редактировать на панели сверху.
- В блоке Сетевые настройки выберите группы безопасности для кластера.
- Нажмите Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить группы безопасности:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-spark cluster update --help -
Измените группы безопасности, выполнив команду:
yc managed-spark cluster update <имя_или_идентификатор_кластера> \ --security-group-ids <список_идентификаторов_групп_безопасности>Где
--security-group-ids— список идентификаторов групп безопасности.Имя и идентификатор кластера можно получить со списком кластеров в каталоге.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию файла описана в разделе Создание кластера.
-
Измените в описании кластера значение параметра
security_group_ids:resource "yandex_spark_cluster" "<имя_кластера>" { ... security_group_ids = [<список_идентификаторов_групп_безопасности>] ... }Где
security_group_ids— список идентификаторов групп безопасности. -
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "network_spec.security_group_ids" ] }, "network_spec": { "security_group_ids": [ <список_идентификаторов_групп_безопасности> ] } }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
network_spec— сетевые настройки:security_group_ids— список идентификаторов групп безопасности.
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить конфигурацию драйверов и исполнителей
- В консоли управления
выберите каталог. - Перейдите
в сервис Managed Service for Apache Spark. - Выберите кластер и нажмите Редактировать на панели сверху.
- В блоках Конфигурация драйвера и Конфигурация исполнителя укажите количество экземпляров и конфигурацию вычислительных ресурсов. Количество экземпляров может быть фиксированным или автомасштабируемым.
- Нажмите Сохранить изменения.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить конфигурацию драйверов и исполнителей:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-spark cluster update --help -
Измените конфигурацию драйверов и исполнителей, выполнив команду:
yc managed-spark cluster update <имя_или_идентификатор_кластера> \ --driver-preset-id <идентификатор_ресурсов_драйвера> \ --driver-fixed-size <количество_экземпляров_драйвера> \ --executor-preset-id <идентификатор_ресурсов_исполнителя> \ --executor-fixed-size <количество_экземпляров_исполнителя> \Где:
--driver-preset-id— класс хостов драйвера.--driver-fixed-size— фиксированное количество хостов для драйвера.--driver-min-size— минимальное количество хостов для драйвера при автоматическом масштабировании.--driver-max-size— максимальное количество хостов для драйвера при автоматическом масштабировании.
Укажите либо фиксированное количество хостов (
--driver-fixed-size), либо минимальное и максимальное количество хостов (--driver-min-size,--driver-max-size) для автоматического масштабирования.--executor-preset-id— класс хостов исполнителя.--executor-fixed-size— фиксированное количество хостов для исполнителя.--executor-min-size— минимальное количество хостов для исполнителя при автоматическом масштабировании.--executor-max-size— максимальное количество хостов для исполнителя при автоматическом масштабировании.
Укажите либо фиксированное количество хостов (
--executor-fixed-size), либо минимальное и максимальное количество хостов (--executor-min-size,--executor-max-size) для автоматического масштабирования.
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию файла описана в разделе Создание кластера.
-
Измените конфигурацию драйверов и исполнителей в блоках
driverиexecutor:resource "yandex_spark_cluster" "<имя_кластера>" { ... resource_pools = { driver = { resource_preset_id = "<класс_хоста>" size = <фиксированное_количество_экземпляров> } executor = { resource_preset_id = "<класс_хоста>" size = <фиксированное_количество_экземпляров> } } ... }Где:
-
driver— конфигурация хостов для запуска драйверов Apache Spark™. В этом блоке укажите:resource_preset_id— класс хостов.size— фиксированное количество экземпляров.min_size— минимальное количество хостов, если используется автоматическое масштабирование.max_size— максимальное количество хостов, если используется автоматическое масштабирование.
-
executor— конфигурация хостов для запуска исполнителей Apache Spark™. В этом блоке укажите:resource_preset_id— класс хостов.size— фиксированное количество экземпляров.min_size— минимальное количество хостов, если используется автоматическое масштабирование.max_size— максимальное количество хостов, если используется автоматическое масштабирование.
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ <список_изменяемых_параметров> ] }, "config_spec": { "resource_pools": { "driver": { "resource_preset_id": "<идентификатор_ресурсов_драйвера>", "scale_policy": { "fixed_scale": { "size": "<количество_экземпляров_драйвера>" } } }, "executor": { "resource_preset_id": "<идентификатор_ресурсов_исполнителя>", "scale_policy": { "auto_scale": { "min_size": "<минимальное_количество_экземпляров_исполнителя>", "max_size": "<максимальное_количество_экземпляров_исполнителя>" } } } } } }Где:
-
cluster_id— идентификатор кластера.Идентификатор кластера можно получить со списком кластеров в каталоге.
-
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
При изменении кластера все параметры изменяемого объекта, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
config_spec— конфигурация кластера:-
resource_pools— конфигурация пулов ресурсов:-
driver— конфигурация хостов для запуска драйверов Apache Spark™.-
resource_preset_id— класс хостов драйвера. -
scale_policy— политика масштабирования групп хостов для драйвера:-
fixed_scale— фиксированная политика масштабирования.size— количество хостов для драйвера.
-
auto_scale— автоматическая политика масштабирования.min_size— минимальное количество хостов для драйвера.max_size— максимальное количество хостов для драйвера.
Укажите один из двух параметров:
fixed_scaleлибоauto_scale. -
-
-
executor— конфигурация хостов для запуска исполнителей Apache Spark™.-
resource_preset_id— класс хостов исполнителя. -
scale_policy— политика масштабирования групп хостов для исполнителя:-
fixed_scale— фиксированная политика масштабирования.size— количество хостов для исполнителя.
-
auto_scale— автоматическая политика масштабирования.min_size— минимальное количество хостов для исполнителя.max_size— максимальное количество хостов для исполнителя.
Укажите один из двух параметров:
fixed_scaleлибоauto_scale. -
-
-
-
-
-
Воспользуйтесь вызовом ClusterService.Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Изменить дополнительные настройки кластера
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Managed Service for Apache Spark. -
Выберите кластер и нажмите Редактировать на панели сверху.
-
В блоке Дополнительные настройки:
-
Выберите Способ настройки ПО:
-
Окружение — доступны базовые и пользовательские окружения. Пользовательское окружение необходимо создать самостоятельно.
-
Пакеты вручную:
-
Версия — версия Apache Spark™.
-
Pip-пакеты и Deb-пакеты — названия pip- и deb-пакетов через пробел, чтобы установить в кластер дополнительные библиотеки и приложения.
При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
py4j>=0.10.9.7 pandas>=1.05 grpcio>=1.48,<1.57 grpcio-status>=1.48,<1.57 googleapis-common-protos==1.56.4Формат названия пакета и выбор версии определены командой установки:
pip install— для pip-пакетов,apt install— для deb-пакетов.
Важно
Добавление пакетов без создания окружения устарело и скоро будет недоступно. Используйте базовое окружение или создайте пользовательское окружение с нужными пакетами.
-
-
-
В настройке Обслуживание измените время технического обслуживания кластера:
- Чтобы разрешить проведение технического обслуживания в любое время, выберите пункт В любое время (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите пункт По расписанию и укажите день недели и интервал времени по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать в себя: обновление СУБД, применение патчей и т. д.
-
Metastore-сервер — выберите кластер Apache Hive™ Metastore для подключения в качестве хранилища метаданных.
-
Защита от удаления — защита кластера от непреднамеренного удаления пользователем.
-
History Server — опция позволяет использовать сервис для мониторинга приложений Spark History Server
. -
Запись логов — опция включает логирование Spark-приложений в кластере:
- Выберите место записи логов:
- Каталог — выберите каталог из списка.
- Группа — выберите лог-группу из списка или создайте новую.
- Выберите Минимальный уровень логирования из списка.
- Выберите место записи логов:
-
-
Нажмите Сохранить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.
Чтобы изменить дополнительны настройки кластера:
-
Посмотрите описание команды CLI для изменения кластера:
yc managed-spark cluster update --help -
Измените дополнительные настройки кластера, выполнив команду:
yc managed-spark cluster update <имя_или_идентификатор_кластера> \ --history-server-enabled <использовать_Spark_History_Server> \ --metastore-cluster-id <идентификатор_кластера_Apache_Hive™_Metastore> \ --pip-packages <список_pip-пакетов> \ --deb-packages <список_deb-пакетов> \ --log-enabled \ --log-folder-id <идентификатор_каталога> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --deletion-protectionГде:
-
--history-server-enabled— подключает сервис для мониторинга приложений Spark History Server . -
--metastore-cluster-id— идентификатор кластера Apache Hive™ Metastore. Эта настройка подключает хранилище метаданных Apache Hive™ Metastore. -
--pip-packages— список pip-пакетов. -
--deb-packages— список deb-пакетов.Списки пакетов позволяют установить в кластер дополнительные библиотеки и приложения.
При необходимости задайте ограничения на версии устанавливаемых пакетов, например:
--pip-packages pandas==2.1.1,scikit-learn>=1.0.0,clickhouse-driver~=0.2.0Формат названия пакета и выбор версии определены командой установки:
pip install— для pip-пакетов,apt install— для deb-пакетов. -
--log-enabled— включает логирование. -
--log-folder-id— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
--log-group-id— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
--log-folder-idили--log-group-id. -
--maintenance-window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype— тип технического обслуживания:- Чтобы разрешить проведение технического обслуживания в любое время, выберите В любое время (по умолчанию).
- Чтобы указать предпочтительное время начала обслуживания, выберите По расписанию и укажите день недели и интервал времени по UTC. Например, можно выбрать время, когда кластер наименее загружен.
Операции по техническому обслуживанию проводятся для включенных и выключенных кластеров. Они могут включать установку обновлений и исправлений Apache Spark™ для хостов, а также другие сервисные работы.
-
--deletion-protection— включает защиту кластера от непреднамеренного удаления.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
Имя и идентификатор кластера можно получить со списком кластеров в каталоге.
-
Чтобы изменить настройки кластера:
-
Откройте актуальный конфигурационный файл Terraform с планом инфраструктуры.
Инструкция по созданию файла описана в разделе Создание кластера.
-
Чтобы изменить настройки кластера, измените значения нужных полей в конфигурационном файле.
Пример структуры конфигурационного файла:
resource "yandex_spark_cluster" "my_spark_cluster" { deletion_protection = <защитить_кластер_от_удаления> config = { ... history_server = { enabled = <использование_Spark_History_Server> } metastore = { cluster_id = "<идентификатор_кластера_Apache_Hive™_Metastore>" } dependencies = { deb_packages = ["<список_deb-пакетов>"] pip_packages = ["<список_pip-пакетов>"] } } maintenance_window = { type = "<тип_технического_обслуживания>" day = "<день_недели>" hour = "<порядковый_номер_часового_интервала>" } logging = { enabled = <включить_логирование> folder_id = "<идентификатор_каталога>" } }Где:
-
deletion_protection— защита кластера от непреднамеренного удаления:trueилиfalse. -
maintenance_window– параметры технического обслуживания (в т. ч. для выключенных кластеров). В этом блоке укажите:-
type— тип технического обслуживания. Принимает значения:ANYTIME— в любое время.WEEKLY— по расписанию.
-
day— день недели для типа обслуживанияWEEKLY:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC для типа обслуживанияWEEKLY: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
history_server— подключение сервиса Apache Spark™ History Server. Для использования сервиса укажитеtrueв параметреenabled. -
metastore— подключение хранилища метаданных Apache Hive™ Metastore. Укажите идентификатор кластера Apache Hive™ Metastore в параметреcluster_id. -
dependencies— дополнительные deb- и pip-пакеты для запуска заданий Apache Spark™. В этом блоке укажите:deb_packages— названия deb-пакетов. Их формат определяет команда установкиapt install.pip_packages— названия pip-пакетов. Их формат определяет команда установкиpip install.
-
logging— параметры логирования. Сгенерированные компонентами Apache Spark™ логи будут отправляться в Yandex Cloud Logging. Для включения логирования:-
Установите значение
enabled = true. -
Задайте одно из двух мест хранения логов:
folder_id— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога.log_group_id— идентификатор пользовательской лог-группы. Логи будут записываться в нее.
-
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validateЕсли в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform planЕсли конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply -
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Подробнее в документации провайдера Terraform.
Чтобы изменить настройки кластера:
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Создайте файл
body.jsonи добавьте в него следующее содержимое:{ "cluster_id": "<идентификатор_кластера>", "update_mask": { "paths": [ "<список_изменяемых_параметров>" ] }, "config_spec": { "history_server": { "enabled": <использование_Spark_History_Server> }, "metastore": { "cluster_id": "<идентификатор_кластера_Apache_Hive™_Metastore>" }, "environment_id": "<идентификатор_окружения>" }, "deletion_protection": <защита_от_удаления>, "logging": { "enabled": <использование_логирования>, "log_group_id": "<идентификатор_лог_группы>", "folder_id": "<идентификатор_каталога>" }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<порядковый_номер_часового_интервала>" } } }Где:
-
cluster_id— идентификатор кластера. Его можно запросить со списком кластеров в каталоге. -
update_mask— перечень изменяемых параметров в виде массива строкpaths[].Формат перечисления настроек
"update_mask": { "paths": [ "<настройка_1>", "<настройка_2>", ... "<настройка_N>" ] }Важно
Все параметры изменяемого кластера, которые не были явно переданы в запросе, будут переопределены на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре
update_mask. -
name— имя кластера. -
description— описание кластера. -
labels— список меток. Метки задаются в формате"<ключ>": "<значение>". -
config_spec— конфигурация кластера:-
history_server— параметры сервера истории.enabled— флаг включения сервера истории. Позволяет использовать сервис для мониторинга приложений Spark History Server.
-
metastore— параметры хранилища метаданных кластера.cluster_id— идентификатор кластера Apache Hive™ Metastore.
-
dependencies— списки пакетов, которые нужно установить в кластер:pip_packages— список pip-пакетов;deb_packages— список deb-пакетов.
Формат названия пакета и выбор версии определяются командами установки:
pip install— для pip-пакетов,apt install— для deb-пакетов. -
spark_version— версия Apache Spark™. -
environment_id— идентификатор базового или пользовательского окружения. Идентификатор пользовательского окружения можно получить с помощью вызова EnvironmentService/List, базового окружения — с помощью вызова EnvironmentService/ListBase.Чтобы подключить окружение вместо использования устаревших параметров
spark_versionиdependencies, добавьте вupdate_mask.pathsпараметрыconfig_spec.environment_id,config_spec.spark_versionиconfig_spec.dependencies. Передайте вconfig_specтолько параметрenvironment_id. Это очистит версию Apache Spark™ и списки пакетов, заданные ранее вручную.
Важно
В запросе укажите либо
environment_id, либоspark_versionиdependencies. Изменение версии и добавление пакетов без создания окружения устарело и скоро будет недоступно. Используйте базовое окружение или создайте пользовательское окружение с нужными пакетами.-
network— сетевые настройки:security_group_ids— список идентификаторов групп безопасности.
-
deletion_protection— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:trueилиfalse.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
logging— параметры логирования:enabled— позволяет включить логирование. Возможные значения:trueилиfalse. Логи, сгенерированные компонентами Apache Spark™, будут отправляться в Yandex Cloud Logging. Возможные значения:trueилиfalse.folder_id— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога.log_group_id— идентификатор пользовательской лог-группы. Логи будут записываться в нее.
Укажите один из двух параметров:
folder_idлибоlog_group_id. -
maintenance_window— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Передайте один из двух параметров:-
anytime— техническое обслуживание проводится в любое время. -
weekly_maintenance_window— техническое обслуживание проводится раз в неделю в указанное время:-
day— день недели:MON,TUE,WED,THU,FRI,SATилиSUN. -
hour— порядковый номер часового интервала по UTC: от1до24.Например,
1соответствует интервалу с00:00до01:00,5— с04:00до05:00.
-
-
-
-
-
Воспользуйтесь вызовом ClusterService/Update и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/spark/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ spark.api.cloud.yandex.net:443 \ yandex.cloud.spark.v1.ClusterService.Update \ < body.json -
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.