Создание кластера Trino
Примечание
Сервис находится на стадии Preview.
Каждый кластер Managed Service for Trino состоит из набора компонентов Trino: координатора и воркеров, которые могут быть представлены в нескольких экземплярах.
Роли для создания кластера
Для создания кластера Managed Service for Trino вашему аккаунту в Yandex Cloud нужны роли:
- managed-trino.admin — чтобы создать кластер;
- vpc.user — чтобы работать с сетью кластера;
- iam.serviceAccounts.user — чтобы привязать сервисный аккаунт к кластеру.
Сервисному аккаунту кластера должны быть назначены роли managed-trino.integrationProvider
и storage.editor
. Это даст кластеру нужные права для работы с пользовательскими ресурсами. Подробнее см. в разделе Имперсонация.
О назначении ролей читайте в документации Yandex Identity and Access Management.
Создать кластер
-
В консоли управления
выберите каталог, в котором нужно создать кластер Managed Service for Trino. -
Выберите сервис Managed Service for Trino.
-
Нажмите кнопку Создать кластер.
-
В блоке Базовые параметры:
-
Задайте имя кластера. Имя должно быть уникальным в рамках каталога.
-
(Опционально) Введите описание кластера.
-
(Опционально) Создайте метки:
- Нажмите кнопку Добавить метку.
- Введите метку в формате
ключ: значение
. - Нажмите Enter.
-
Выберите существующий сервисный аккаунт или создайте новый.
Сервисному аккаунту должны быть назначены роли
managed-trino.integrationProvider
иstorage.editor
.
-
-
В блоке Сетевые настройки выберите сеть, подсеть и группу безопасности для кластера.
-
В блоке Политика перезапросов задайте параметры отказоустойчивого выполнения запросов:
- Выберите Тип объекта для перезапроса:
- Задача — в рамках запроса повторно выполняется промежуточное задание, вызвавшее сбой воркера.
- Запрос — повторно выполняются все этапы запроса, в котором произошел сбой воркера.
- (Опционально) В поле Параметры перезапросов задайте дополнительные параметры в формате
ключ: значение
. Подробнее о параметрах см. в документации Trino . - (Опционально) В поле Параметры хранилища задайте дополнительные параметры хранилища Exchange Manager в формате
ключ: значение
. Подробнее о параметрах см. в документации Trino .
- Выберите Тип объекта для перезапроса:
-
Задайте конфигурацию координатора и воркеров.
-
В блоке Каталоги добавьте необходимые каталоги Trino. Вы можете сделать это как при создании кластера, так и позже. Подробнее см. в разделе Создание каталога Trino.
-
В блоке Дополнительные настройки:
-
(Опционально) Включите защиту от удаления кластера.
-
(Опционально) Настройте логирование:
- Включите настройку Запись логов.
- Выберите место записи логов:
- Каталог — выберите каталог из списка. Логи будут записываться в лог-группу по умолчанию выбранного каталога.
- Группа — выберите лог-группу из списка или создайте новую.
- Выберите Минимальный уровень логирования из списка.
-
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы создать кластер Managed Service for Trino:
-
Проверьте, есть ли в каталоге подсети для хостов кластера:
yc vpc subnet list
Если ни одной подсети в каталоге нет, создайте нужные подсети в сервисе VPC.
-
Посмотрите описание команды CLI для создания кластера:
yc managed-trino cluster create --help
-
Укажите параметры кластера в команде создания (в примере приведены не все доступные параметры):
yc managed-trino cluster create \ --name <имя_кластера> \ --service-account-id <идентификатор_сервисного_аккаунта> \ --subnet-ids <список_идентификаторов_подсетей> \ --security-group-ids <список_идентификаторов_групп_безопасности> \ --coordinator resource-preset-id=<класс_вычислительных_ресурсов> \ --worker resource-preset-id=<класс_вычислительных_ресурсов>,count=<количество_воркеров> \ --deletion-protection
Где:
-
--name
— имя кластера. Оно должно быть уникальным в рамках каталога. -
--service-account-id
— идентификатор сервисного аккаунта. -
--subnet-ids
— список идентификаторов подсетей. -
--security-group-ids
— список идентификаторов групп безопасности. -
--coordinator
— конфигурация координатора:-
resource-preset-id
— класс вычислительных ресурсов координатора. Возможные значения:c4-m16
— 4 vCPU, 16 ГБ RAM.c4-m32
— 4 vCPU, 32 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.c8-m64
— 8 vCPU, 64 ГБ RAM.c16-m64
— 16 vCPU, 64 ГБ RAM.c16-m128
— 16 vCPU, 128 ГБ RAM.c32-m128
— 32 vCPU, 128 ГБ RAM.c32-m256
— 32 vCPU, 256 ГБ RAM.
-
-
--worker
— конфигурация воркера:-
resource-preset-id
— класс вычислительных ресурсов воркера. Возможные значения:c4-m16
— 4 vCPU, 16 ГБ RAM.c4-m32
— 4 vCPU, 32 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.c8-m64
— 8 vCPU, 64 ГБ RAM.c16-m64
— 16 vCPU, 64 ГБ RAM.c16-m128
— 16 vCPU, 128 ГБ RAM.c32-m128
— 32 vCPU, 128 ГБ RAM.c32-m256
— 32 vCPU, 256 ГБ RAM.
-
count
— фиксированное количество воркеров. -
minCount
— минимальное количество воркеров для автоматического масштабирования. -
maxCount
— максимальное количество воркеров для автоматического масштабирования.
Укажите либо фиксированное количество воркеров (
count
), либо минимальное и максимальное количество воркеров (minCount
,maxCount
) для автоматического масштабирования. -
-
--deletion-protection
— защита кластера от непреднамеренного удаления:true
илиfalse
.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
-
Чтобы включить отправку логов Trino в сервис Yandex Cloud Logging, задайте параметры логирования:
yc managed-trino cluster create <имя_кластера> \ ... --log-enabled \ --log-folder-id <идентификатор_каталога> \ --log-min-level <уровень_логирования>
Где:
-
--log-enabled
— включает логирование. -
--log-folder-id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
--log-group-id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Вы можете указать только один из параметров:
--log-folder-id
или--log-group-id
. -
--log-min-level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
(значение по умолчанию),WARN
,ERROR
иFATAL
.
-
-
Чтобы включить политику отказоустойчивого выполнения запросов, задайте параметры:
yc managed-trino cluster create <имя_кластера> \ ... --retry-policy-enabled \ --retry-policy \ --retry-policy-additional-properties <список_дополнительных_параметров_политики_перезапросов> \ --retry-policy-exchange-manager-service-s3 \ --retry-policy-exchange-manager-additional-properties <список_дополнительных_параметров_хранилища>
Где:
-
--retry-policy-enabled
— включает политику перезапросов. -
--retry-policy
— способ повторного выполнения запросов. Возможные значения:task
— в рамках запроса повторно выполняется промежуточное задание, вызвавшее сбой воркера.query
— повторно выполняются все этапы запроса, в котором произошел сбой воркера.
-
--retry-policy-additional-properties
— дополнительные параметры повторного выполнения запросов в формате<ключ>=<значение>
. Подробнее о параметрах см. в документации Trino . -
--retry-policy-exchange-manager-service-s3
— использование S3-хранилища для записи данных при перезапросах. -
--retry-policy-exchange-manager-additional-properties
— дополнительные параметры хранилища в формате<ключ>=<значение>
. Подробнее о параметрах см. в документации Trino .
-
-
Чтобы настроить время технического обслуживания (в т. ч. для выключенных кластеров), передайте нужное значение в параметре
--maintenance-window
:yc managed-trino cluster create <имя_кластера> \ ... --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \
Где
type
— тип технического обслуживания:anytime
(по умолчанию) — в любое время.weekly
— по расписанию. Для этого значения дополнительно укажите:day
— день недели:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC: от1
до24
.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:Примечание
В примере приведены не все доступные параметры. Список всех параметров см. в документации по API.
{ "folderId": "<идентификатор_каталога>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { <список_меток> }, "trino": { "coordinatorConfig": { "resources": { "resourcePresetId": "<класс_вычислительных_ресурсов>" } }, "workerConfig": { "resources": { "resourcePresetId": "<класс_вычислительных_ресурсов>" }, "scalePolicy": { "autoScale": { "minCount": "<минимальное_количество_экземпляров>", "maxCount": "<максимальное_количество_экземпляров>" } } } }, "retryPolicy": { "policy": "<тип_объекта_для_перезапроса>", "exchangeManager": { "storage": { "serviceS3": {} }, "additionalProperties": {<дополнительные_параметры_хранилища>} }, "additionalProperties": {<дополнительные_параметры_перезапросов>} }, "network": { "subnetIds": [ <список_идентификаторов_подсетей> ], "securityGroupIds": [ <список_идентификаторов_групп_безопасности> ] }, "deletionProtection": "<защита_от_удаления>", "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": "<использование_логирования>", "folderId": "<идентификатор_каталога>", "minLevel": "<уровень_логирования>" } }
Где:
-
folderId
— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате"<ключ>": "<значение>"
. -
trino
— конфигурация компонентов кластера Trino.-
coordinatorConfig
— конфигурация координатора.-
resources.resourcePresetId
— класс вычислительных ресурсов координатора. Возможные значения:c4-m16
— 4 vCPU, 16 ГБ RAM.c4-m32
— 4 vCPU, 32 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.c8-m64
— 8 vCPU, 64 ГБ RAM.c16-m64
— 16 vCPU, 64 ГБ RAM.c16-m128
— 16 vCPU, 128 ГБ RAM.c32-m128
— 32 vCPU, 128 ГБ RAM.c32-m256
— 32 vCPU, 256 ГБ RAM.
-
-
workerConfig
— конфигурация воркера.-
resources.resourcePresetId
— класс вычислительных ресурсов воркера. Возможные значения:c4-m16
— 4 vCPU, 16 ГБ RAM.c4-m32
— 4 vCPU, 32 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.c8-m64
— 8 vCPU, 64 ГБ RAM.c16-m64
— 16 vCPU, 64 ГБ RAM.c16-m128
— 16 vCPU, 128 ГБ RAM.c32-m128
— 32 vCPU, 128 ГБ RAM.c32-m256
— 32 vCPU, 256 ГБ RAM.
-
scalePolicy
— политика масштабирования воркеров:-
fixedScale
— фиксированная политика масштабирования.count
— количество воркеров.
-
autoScale
— автоматическая политика масштабирования.minCount
— минимальное количество воркеров.maxCount
— максимальное количество воркеров.
Укажите один из двух параметров:
fixedScale
либоautoScale
. -
-
-
retryPolicy
— параметры отказоустойчивого выполнения запросов.-
policy
– способ повторного выполнения запросов. Возможные значения:TASK
— в рамках запроса повторно выполняется промежуточное задание, вызвавшее сбой воркера.QUERY
– повторно выполняются все этапы запроса, в котором произошел сбой воркера.
-
exchangeManager.additionalProperties
– дополнительные параметры хранилища Exchange Manager в форматеключ: значение
. Подробнее о параметрах см. в документации Trino . -
additionalProperties
– дополнительные параметры в форматеключ: значение
. Подробнее о параметрах см. в документации Trino .
-
-
-
network
— сетевые настройки:subnetIds
— список идентификаторов подсетей.securityGroupIds
— список идентификаторов групп безопасности.
-
deletionProtection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
serviceAccountId
— идентификатор сервисного аккаунта. -
logging
— параметры логирования:enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Trino, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
.minLevel
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
.folderId
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога.logGroupId
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.
Укажите один из двух параметров:
folderId
либоlogGroupId
.
-
-
Воспользуйтесь методом Cluster.create и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://trino.api.cloud.yandex.net/managed-trino/v1/clusters' --data '@body.json'
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapi
Далее предполагается, что содержимое репозитория находится в директории
~/cloudapi/
. -
Создайте файл
body.json
и добавьте в него следующее содержимое:Примечание
В примере приведены не все доступные параметры. Список всех параметров см. в документации по API.
{ "folder_id": "<идентификатор_каталога>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { <список_меток> }, "trino": { "coordinator_config": { "resources": { "resource_preset_id": "<класс_вычислительных_ресурсов>" } }, "worker_config": { "resources": { "resource_preset_id": "<класс_вычислительных_ресурсов>" }, "scale_policy": { "auto_scale": { "min_count": "<минимальное_количество_экземпляров>", "max_count": "<максимальное_количество_экземпляров>" } } }, "retry_policy": { "policy": "<тип_объекта_для_перезапроса>", "exchange_manager": { "storage": { "service_s3": "" }, "additional_properties": {<дополнительные_параметры_хранилища>} }, "additional_properties": {<дополнительные_параметры_перезапросов>} } }, "network": { "subnet_ids": [ <список_идентификаторов_подсетей> ], "security_group_ids": [ <список_идентификаторов_групп_безопасности> ] }, "deletion_protection": "<защита_от_удаления>", "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": "<использование_логирования>", "folder_id": "<идентификатор_каталога>", "min_level": "<уровень_логирования>" } }
Где:
-
folder_id
— идентификатор каталога. Его можно запросить со списком каталогов в облаке. -
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате"<ключ>": "<значение>"
. -
trino
— конфигурация компонентов кластера Trino.-
coordinator_config
— конфигурация координатора.-
resources.resource_preset_id
— класс вычислительных ресурсов координатора. Возможные значения:c4-m16
— 4 vCPU, 16 ГБ RAM.c4-m32
— 4 vCPU, 32 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.c8-m64
— 8 vCPU, 64 ГБ RAM.c16-m64
— 16 vCPU, 64 ГБ RAM.c16-m128
— 16 vCPU, 128 ГБ RAM.c32-m128
— 32 vCPU, 128 ГБ RAM.c32-m256
— 32 vCPU, 256 ГБ RAM.
-
-
worker_config
— конфигурация воркера.-
resources.resource_preset_id
— класс вычислительных ресурсов воркера. Возможные значения:c4-m16
— 4 vCPU, 16 ГБ RAM.c4-m32
— 4 vCPU, 32 ГБ RAM.c8-m32
— 8 vCPU, 32 ГБ RAM.c8-m64
— 8 vCPU, 64 ГБ RAM.c16-m64
— 16 vCPU, 64 ГБ RAM.c16-m128
— 16 vCPU, 128 ГБ RAM.c32-m128
— 32 vCPU, 128 ГБ RAM.c32-m256
— 32 vCPU, 256 ГБ RAM.
-
scale_policy
— политика масштабирования воркеров:-
fixed_scale
— фиксированная политика масштабирования.count
— количество воркеров.
-
auto_scale
— автоматическая политика масштабирования.min_count
— минимальное количество воркеров.max_count
— максимальное количество воркеров.
Укажите один из двух параметров:
fixed_scale
либоauto_scale
. -
-
-
retry_policy
— параметры отказоустойчивого выполнения запросов.-
policy
– способ повторного выполнения запросов. Возможные значения:TASK
— в рамках запроса повторно выполняется промежуточное задание, вызвавшее сбой воркера.QUERY
– повторно выполняются все этапы запроса, в котором произошел сбой воркера.
-
exchange_manager.additional_properties
– дополнительные параметры хранилища Exchange Manager в форматеключ: значение
. Подробнее о параметрах см. в документации Trino . -
additional_properties
– дополнительные параметры в форматеключ: значение
. Подробнее о параметрах см. в документации Trino .
-
-
-
network
— сетевые настройки:subnet_ids
— список идентификаторов подсетей.security_group_ids
— список идентификаторов групп безопасности.
-
deletion_protection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
.Включенная защита от удаления не помешает подключиться к кластеру вручную и удалить его.
-
service_account_id
— идентификатор сервисного аккаунта. -
logging
— параметры логирования:enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Trino, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
.min_level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
.folder_id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога.log_group_id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.
Укажите один из двух параметров:
folder_id
либоlog_group_id
.
-
-
Воспользуйтесь вызовом ClusterService/Create и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/trino/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ trino.api.cloud.yandex.net:443 \ yandex.cloud.trino.v1.ClusterService.Create \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Примеры
Создайте кластер Managed Service for Trino с тестовыми характеристиками:
- Имя —
mytr
. - Сервисный аккаунт —
trino-sa
. - Подсеть —
b0rcctk2rvtr********
. - Группа безопасности —
enp6saqnq4ie********
. - Координатор с классом вычислительных ресурсов —
c4-m16
. - 4 воркера с классом вычислительных ресурсов —
c4-m16
. - Защита от непреднамеренного удаления.
Выполните следующую команду:
yc managed-trino cluster create \
--name mytr \
--service-account-id ajev56jp96ji******** \
--subnet-ids b0rcctk2rvtr******** \
--security-group-ids enp6saqnq4ie******** \
--coordinator resource-preset-id=c4-m16 \
--worker resource-preset-id=c4-m16,count=4 \
--deletion-protection