Управление хостами ClickHouse® Keeper
После создания кластера с отдельными хостами ClickHouse® Keeper вы можете:
- получить список хостов;
- создать хост;
- изменить настройки ClickHouse® Keeper;
- перезагрузить хост;
- преобразовать нереплицируемые таблицы в реплицируемые;
- удалить хост ClickHouse® Keeper.
Подробнее о работе хостов ClickHouse® Keeper читайте в разделе ClickHouse® Keeper.
Получить список хостов в кластере
- В консоли управления
выберите каталог, в котором находится кластер. - Перейдите в сервис Managed Service for ClickHouse.
- Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы получить список хостов в кластере, выполните команду:
yc managed-clickhouse host list \
--cluster-name=<имя_кластера>
+----------------------------+--------------+---------+--------+---------------+
| NAME | CLUSTER ID | ROLE | HEALTH | ZONE ID |
+----------------------------+--------------+---------+--------+---------------+
| rc1b...mdb.yandexcloud.net | c9qp71dk1... | MASTER | ALIVE | ru-central1-b |
| rc1a...mdb.yandexcloud.net | c9qp71dk1... | REPLICA | ALIVE | ru-central1-a |
+----------------------------+--------------+---------+--------+---------------+
Имя кластера можно запросить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.ListHosts и выполните запрос, например, с помощью cURL
:curl \ --request GET \ --header "Authorization: Bearer $IAM_TOKEN" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/hosts'Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.ListHosts и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>" }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.ListHostsИдентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Создать хост ClickHouse® Keeper
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
- В правом верхнем углу страницы нажмите кнопку Создать хост ClickHouse Keeper.
- Выберите зону доступности и подсеть в указанной зоне доступности.
- Нажмите кнопку Сохранить.
Изменить настройки ClickHouse® Keeper
- В консоли управления
перейдите на страницу каталога и выберите сервис Managed Service for ClickHouse. - Выберите кластер и на панели сверху нажмите кнопку Редактировать.
- В блоке Ресурсы ClickHouse Keeper выберите платформу, тип виртуальной машины и нужный класс хоста ClickHouse® Keeper.
- В блоке Размер хранилища ClickHouse Keeper задайте тип диска, размер хранилища и настройте автоматическое увеличение размера хранилища.
- Нажмите кнопку Сохранить изменения.
Перезагрузить хост
Перезагрузка хостов может понадобиться, если нужно экстренно устранить такие проблемы, как:
- перерасход ресурсов;
- утечка памяти;
- взаимоблокировка (deadlock) между запросами;
- зависание операций и внутренних процессов ClickHouse®.
Чтобы перезагрузить один хост:
- В консоли управления
выберите каталог, в котором находится кластер. - Перейдите в сервис Managed Service for ClickHouse.
- Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
- В строке нужного хоста нажмите на значок
и выберите пункт Перезагрузить. - В открывшемся окне включите опцию Я перезагружаю хост и нажмите кнопку Подтвердить.
Чтобы перезагрузить несколько хостов сразу:
- В консоли управления
выберите каталог, в котором находится кластер. - Перейдите в сервис Managed Service for ClickHouse.
- Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
- Выберите хосты, которые хотите перезагрузить, и нажмите Перезагрузить в нижней части экрана.
- В открывшемся окне нажмите кнопку Подтвердить.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы перезагрузить один или несколько хостов, выполните команду, передав их имена. Используйте пробел в качестве разделителя.
Команда для перезагрузки одного хоста выглядит так:
yc managed-clickhouse host restart <имя_хоста> \
--cluster-name=<имя_кластера>
Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.RestartHosts и выполните запрос, например, с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/hosts:restartHosts' \ --data '{ "hostNames": [ <перечень_имен_хостов> ] }'Где
hostNames— массив строк. Каждая строка — имя хоста, который нужно перезагрузить. Имена хостов можно запросить со списком хостов в кластере.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.RestartHosts и выполните запрос, например, с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_names": [ <перечень_имен_хостов> ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.RestartHostsГде
host_names— массив строк. Каждая строка — имя хоста, который нужно перезагрузить. Имена хостов можно запросить со списком хостов в кластере.Идентификатор кластера можно запросить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
Преобразовать нереплицируемые таблицы в реплицируемые
Чтобы автоматически преобразовать нереплицируемые таблицы на движке семейства MergeTree
Удалить хост ClickHouse® Keeper
Важно
Хосты ClickHouse® Keeper можно удалять только по одному за раз. При этом в кластере всегда должны оставаться минимум три хоста ClickHouse® Keeper.
- Перейдите на страницу каталога
и выберите сервис Managed Service for ClickHouse. - Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
- В строке нужного хоста нажмите на значок
и выберите пункт Удалить. - Подтвердите удаление.
Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.
По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.
Чтобы удалить хост ClickHouse® Keeper:
-
Посмотрите описание команды CLI для удаления хоста:
yc managed-clickhouse hosts delete --help -
Удалите хост, выполнив команду:
yc managed-clickhouse hosts delete <имя_хоста> \ --cluster-id=<идентификатор_кластера>Имя хоста можно получить со списком хостов в кластере.
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Воспользуйтесь методом Cluster.DeleteHosts и выполните запрос, например с помощью cURL
:curl \ --request POST \ --header "Authorization: Bearer $IAM_TOKEN" \ --header "Content-Type: application/json" \ --url 'https://mdb.api.cloud.yandex.net/managed-clickhouse/v1/clusters/<идентификатор_кластера>/hosts:batchDelete' \ --data '{ "hostNames": [ <имя_хоста> ] }'Имя хоста можно получить со списком хостов в кластера.
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
-
Получите IAM-токен для аутентификации в API и поместите токен в переменную среды окружения:
export IAM_TOKEN="<IAM-токен>" -
Клонируйте репозиторий cloudapi
:cd ~/ && git clone --depth=1 https://github.com/yandex-cloud/cloudapiДалее предполагается, что содержимое репозитория находится в директории
~/cloudapi/. -
Воспользуйтесь вызовом ClusterService.DeleteHosts и выполните запрос, например с помощью gRPCurl
:grpcurl \ -format json \ -import-path ~/cloudapi/ \ -import-path ~/cloudapi/third_party/googleapis/ \ -proto ~/cloudapi/yandex/cloud/mdb/clickhouse/v1/cluster_service.proto \ -rpc-header "Authorization: Bearer $IAM_TOKEN" \ -d '{ "cluster_id": "<идентификатор_кластера>", "host_names": [ <имя_хоста> ] }' \ mdb.api.cloud.yandex.net:443 \ yandex.cloud.mdb.clickhouse.v1.ClusterService.DeleteHostsИмя хоста можно получить со списком хостов в кластере.
Идентификатор кластера можно получить со списком кластеров в каталоге.
-
Убедитесь, что запрос был выполнен успешно, изучив ответ сервера.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc