Создание кластера Apache Hive™ Metastore
Подробнее о кластерах Apache Hive™ Metastore в сервисе Yandex MetaData Hub см. в разделе Кластеры Apache Hive™ Metastore.
Перед началом работы
-
Для привязки сервисного аккаунта к кластеру Apache Hive™ Metastore убедитесь, что вашему аккаунту в Yandex Cloud назначена роль iam.serviceAccounts.user или выше.
-
Настройте NAT-шлюз в подсети, к которой будет подключен кластер. Это необходимо, чтобы кластер мог взаимодействовать с сервисами Yandex Cloud.
-
Назначьте сервисному аккаунту роль
managed-metastore.integrationProvider
. Она позволяет кластеру от имени сервисного аккаунта взаимодействовать с сервисами Yandex Cloud, например, с Yandex Cloud Logging и Yandex Monitoring.Вы можете добавить дополнительные роли. Их набор зависит от сценария работы. Сервисные роли приведены в разделе для Apache Hive™ Metastore, все доступные роли — в справочнике.
-
Если вы хотите сохранять логи кластера в пользовательскую лог-группу, создайте ее.
Подробнее см. в разделе Передача логов кластера.
Создание кластера
-
В консоли управления
выберите каталог, в котором нужно создать сервер. -
Выберите сервис Yandex MetaData Hub.
-
На панели слева выберите
Metastore-сервер. -
Нажмите кнопку Создать кластер.
-
Введите имя кластера. Оно должно быть уникальным в рамках каталога.
-
(Опционально) Введите описание кластера.
-
(Опционально) Добавьте метки Yandex Cloud для разделения ресурсов на логические группы.
-
Укажите сервисный аккаунт, созданный ранее.
-
Выберите версию Apache Hive™ Metastore.
Доступны версии 3.1 и 4.0.
Важно
Для интеграции кластера Apache Hive™ Metastore с сервисами Yandex Managed Service for Trino и Yandex Managed Service for Apache Spark™ требуется версия 3.1.
При необходимости версию 3.1 можно повысить до 4.0, но понизить версию 4.0 до 3.1 невозможно.
-
В блоке Сетевые настройки выберите сеть и подсеть, в которых будет размещен кластер Apache Hive™ Metastore. Укажите заранее настроенную группу безопасности.
-
В блоке Metastore выберите конфигурацию кластера.
-
(Опционально) Задайте настройки логирования:
-
Включите опцию Запись логов.
-
Выберите, куда записывать логи кластера:
- В лог-группу по умолчанию — выберите значение Каталог в поле Назначение и укажите нужный каталог. Логи будут храниться в лог-группе, которая действует по умолчанию в выбранном каталоге.
- В пользовательскую лог-группу — выберите значение Лог-группа в поле Назначение и укажите заранее созданную лог-группу.
-
Выберите минимальный уровень логирования.
В журнал выполнения записываются логи указанного уровня и выше. Доступные уровни —
TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
. Уровень по умолчанию —INFO
.
-
-
При необходимости включите защиту кластера от непреднамеренного удаления пользователем.
Включенная защита кластера от удаления не помешает подключиться к нему вручную и удалить данные.
-
Нажмите кнопку Создать.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>
. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name
или --folder-id
.
Чтобы создать кластер Apache Hive™ Metastore:
-
Посмотрите описание команды CLI для создания кластера:
yc managed-metastore cluster create --help
-
Укажите параметры кластера в команде создания:
yc managed-metastore cluster create \ --name <имя_кластера> \ --description <описание_кластера> \ --labels <список_меток> \ --service-account-id <идентификатор_сервисного_аккаунта> \ --version <версия_Apache_Hive™_Metastore> \ --subnet-ids <идентификаторы_подсетей> \ --security-group-ids <идентификаторы_групп_безопасности> \ --resource-preset-id <идентификатор_вычислительных_ресурсов> \ --maintenance-window type=<тип_технического_обслуживания>,` `day=<день_недели>,` `hour=<час_дня> \ --deletion-protection \ --log-enabled \ --log-folder-id <идентификатор_каталога> \ --log-min-level <уровень_логирования>
Где:
--name
— имя кластера.
-
--description
— описание кластера. -
--labels
— список меток. Метки задаются в формате<ключ>=<значение>
. -
--service-account-id
— идентификатор сервисного аккаунта. -
--version
— версия Apache Hive™ Metastore.Доступны версии 3.1 и 4.0.
Важно
Для интеграции кластера Apache Hive™ Metastore с сервисами Yandex Managed Service for Trino и Yandex Managed Service for Apache Spark™ требуется версия 3.1.
При необходимости версию 3.1 можно повысить до 4.0, но понизить версию 4.0 до 3.1 невозможно.
--subnet-ids
— список идентификаторов подсетей.
-
--security-group-ids
— список идентификаторов групп безопасности. -
--resource-preset-id
— конфигурация вычислительных ресурсов. -
--maintenance-window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров), гдеtype
— тип технического обслуживания:anytime
(по умолчанию) — в любое время.weekly
— по расписанию. Для этого значения дополнительно укажите:day
— день недели:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC: от1
до24
.
-
--deletion-protection
— включает защиту кластера от непреднамеренного удаления. -
Параметры логирования:
-
--log-enabled
— включает логирование. Логи, сгенерированные компонентами Apache Hive™ Metastore, будут отправляться в Yandex Cloud Logging. -
--log-folder-id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
--log-group-id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
--log-folder-id
либо--log-group-id
. -
--log-min-level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
(значение по умолчанию),WARN
,ERROR
иFATAL
.
-
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать кластер Apache Hive™ Metastore:
-
Опишите в конфигурационном файле создаваемые ресурсы:
-
Кластер Apache Hive™ Metastore — описание кластера.
-
Сеть — описание облачной сети, в которой будет расположен кластер. Если подходящая сеть у вас уже есть, описывать ее повторно не нужно.
-
Подсети — описание подсетей, к которым будут подключены хосты кластера. Если подходящие подсети у вас уже есть, описывать их повторно не нужно.
Пример структуры конфигурационного файла:
resource "yandex_metastore_cluster" "<имя_кластера>" { name = "<имя_кластера>" subnet_ids = [yandex_vpc_subnet.<имя_подсети>.id] security_group_ids = [<список_идентификаторов_групп_безопасности>] service_account_id = "<идентификатор_сервисного_аккаунта>" deletion_protection = <защитить_кластер_от_удаления> version = "<версия>" cluster_config = { resource_preset_id = "<класс_вычислительных_ресурсов>" } maintenance_window = { type = "<тип_технического_обслуживания>" day = "<день_недели>" hour = <час_дня> } logging = { enabled = <включить_логирование> folder_id = "<идентификатор_каталога>" min_level = "<уровень_логирования>" } } resource "yandex_vpc_network" "<имя_сети>" { name = "<имя_сети>" } resource "yandex_vpc_subnet" "<имя_подсети>" { name = "<имя_подсети>" zone = "<зона_доступности>" network_id = "<идентификатор_сети>" v4_cidr_blocks = ["<диапазон>"] }
Где:
-
name
— имя кластера. -
subnet_ids
— список идентификаторов подсетей. -
security_group_ids
— список идентификаторов групп безопасности. -
service_account_id
— идентификатор сервисного аккаунта. -
deletion_protection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
. -
version
— версия Apache Hive™ Metastore.Доступны версии 3.1 и 4.0.
Важно
Для интеграции кластера Apache Hive™ Metastore с сервисами Yandex Managed Service for Trino и Yandex Managed Service for Apache Spark™ требуется версия 3.1.
При необходимости версию 3.1 можно повысить до 4.0, но понизить версию 4.0 до 3.1 невозможно.
-
cluster_config.resource_preset_id
— конфигурация вычислительных ресурсов. -
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров).type
— тип технического обслуживания. Принимает значения:ANYTIME
— в любое время.WEEKLY
— по расписанию.
day
— день недели для типаWEEKLY
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
.hour
— час дня по UTC для типаWEEKLY
: от1
до24
.
-
logging
— параметры логирования:-
enable
— позволяет включить логирование. Логи, сгенерированные компонентами Apache Hive™ Metastore, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
. -
folder_id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
group_id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folder_id
либоgroup_id
. -
min_level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
(значение по умолчанию),WARN
,ERROR
иFATAL
.
-
-
-
Проверьте корректность настроек.
-
В командной строке перейдите в каталог, в котором расположены актуальные конфигурационные файлы Terraform с планом инфраструктуры.
-
Выполните команду:
terraform validate
Если в файлах конфигурации есть ошибки, Terraform на них укажет.
-
-
Подтвердите изменение ресурсов.
-
Выполните команду для просмотра планируемых изменений:
terraform plan
Если конфигурации ресурсов описаны верно, в терминале отобразится список изменяемых ресурсов и их параметров. Это проверочный этап: ресурсы не будут изменены.
-
Если вас устраивают планируемые изменения, внесите их:
-
Выполните команду:
terraform apply
-
Подтвердите изменение ресурсов.
-
Дождитесь завершения операции.
-
-
Более подробную информацию о ресурсах, которые вы можете создать с помощью Terraform, см. в документации провайдера
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>"
-
Создайте файл
body.json
и добавьте в него следующее содержимое:{ "folderId": "<идентификатор_каталога>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": { "<список_меток>" }, "deletionProtection": <защита_от_удаления>, "version": "<версия_Apache_Hive™_Metastore>", "configSpec": { "resources": { "resourcePresetId": "<идентификатор_конфигурации_ресурсов>" } }, "serviceAccountId": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": <использование_логирования>, "folderId": "<идентификатор_каталога>", "minLevel": "<уровень_логирования>" }, "network": { "subnetIds": [ "<список_идентификаторов_подсетей>" ], "securityGroupIds": [ "<список_идентификаторов_групп_безопасности>" ] }, "maintenanceWindow": { "weeklyMaintenanceWindow": { "day": "<день_недели>", "hour": "<час>" } } }
Где:
folderId
— идентификатор каталога. Его можно запросить со списком каталогов в облаке.
-
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате"<ключ>": "<значение>"
. -
deletionProtection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
. -
version
— версия Apache Hive™ Metastore.Доступны версии 3.1 и 4.0.
Важно
Для интеграции кластера Apache Hive™ Metastore с сервисами Yandex Managed Service for Trino и Yandex Managed Service for Apache Spark™ требуется версия 3.1.
При необходимости версию 3.1 можно повысить до 4.0, но понизить версию 4.0 до 3.1 невозможно.
-
configSpec.resources.resourcePresetId
— конфигурация вычислительных ресурсов. -
serviceAccountId
— идентификатор сервисного аккаунта. -
logging
— параметры логирования:-
enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Apache Hive™ Metastore, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
. -
folderId
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
logGroupId
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folderId
либоlogGroupId
. -
minLevel
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
.
-
-
network
— сетевые настройки:subnetIds
— список идентификаторов подсетей.securityGroupIds
— список идентификаторов групп безопасности.
-
maintenanceWindow
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). ВmaintenanceWindow
передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в произвольное время. -
weeklyMaintenanceWindow
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
;hour
— час дня по UTC в форматеHH
: от1
до24
.
-
-
Воспользуйтесь методом Cluster.Create и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://metastore.api.cloud.yandex.net/managed-metastore/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
и добавьте в него следующее содержимое:{ "folder_id": "<идентификатор_каталога>", "name": "<имя_кластера>", "description": "<описание_кластера>", "labels": "{ <список_меток> }", "deletion_protection": <защита_от_удаления>, "version": "<версия_Apache_Hive™_Metastore>", "config_spec": { "resources": { "resource_preset_id": "<идентификатор_конфигурации_ресурсов>" } }, "service_account_id": "<идентификатор_сервисного_аккаунта>", "logging": { "enabled": <использование_логирования>, "folder_id": "<идентификатор_каталога>", "min_level": "<уровень_логирования>" }, "network": { "subnet_ids": [ "<список_идентификаторов_подсетей>" ], "security_group_ids": [ "<список_идентификаторов_групп_безопасности>" ] }, "maintenance_window": { "weekly_maintenance_window": { "day": "<день_недели>", "hour": "<час>" } } }
Где:
folder_id
— идентификатор каталога. Его можно запросить со списком каталогов в облаке.
-
name
— имя кластера. -
description
— описание кластера. -
labels
— список меток. Метки задаются в формате"<ключ>": "<значение>"
. -
deletion_protection
— позволяет включить защиту кластера от непреднамеренного удаления. Возможные значения:true
илиfalse
. -
version
— версия Apache Hive™ Metastore.Доступны версии 3.1 и 4.0.
Важно
Для интеграции кластера Apache Hive™ Metastore с сервисами Yandex Managed Service for Trino и Yandex Managed Service for Apache Spark™ требуется версия 3.1.
При необходимости версию 3.1 можно повысить до 4.0, но понизить версию 4.0 до 3.1 невозможно.
-
config_spec.resources.resource_preset_id
— конфигурация вычислительных ресурсов. -
service_account_id
— идентификатор сервисного аккаунта. -
logging
— параметры логирования:-
enabled
— позволяет включить логирование. Логи, сгенерированные компонентами Apache Hive™ Metastore, будут отправляться в Yandex Cloud Logging. Возможные значения:true
илиfalse
. -
folder_id
— идентификатор каталога. Логи будут записываться в лог-группу по умолчанию для этого каталога. -
log_group_id
— идентификатор пользовательской лог-группы. Логи будут записываться в нее.Укажите один из двух параметров:
folder_id
либоlog_group_id
. -
min_level
— минимальный уровень логирования. Возможные значения:TRACE
,DEBUG
,INFO
,WARN
,ERROR
иFATAL
.
-
-
network
— сетевые настройки:subnet_ids
— список идентификаторов подсетей.security_group_ids
— список идентификаторов групп безопасности.
-
maintenance_window
— настройки времени технического обслуживания (в т. ч. для выключенных кластеров). Вmaintenance_window
передайте один из двух параметров:-
anytime
— техническое обслуживание происходит в произвольное время. -
weekly_maintenance_window
— техническое обслуживание происходит раз в неделю, в указанное время:day
— день недели в форматеDDD
:MON
,TUE
,WED
,THU
,FRI
,SAT
илиSUN
;hour
— час дня по UTC в форматеHH
: от1
до24
.
-
-
Воспользуйтесь вызовом ClusterService.Create и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/metastore/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d @ \ metastore.api.cloud.yandex.net:443 \ yandex.cloud.metastore.v1.ClusterService.Create \ < body.json
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Apache® и Apache Hive™