Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Примечание |
---|
Данная инструкция предназначена для развёртки трёх и более экземпляров ClickHouse. |
Остановите платформу, выполнив следующую команду:
/var/lib/visiology/scripts/run.sh --stop
Выполните шаги 1 - 5, описанные в разделе Ускорение загрузки данных (в пункте 5 заменять значения для
RefreshDataJob__ParallelWorkers
иHangfire__WorkerCount
необязательно).В файле
/var/lib/visiology/scripts/v3/visiology3.yml
для каждого экземпляра Clickhouse, добавленного на втором шаге (в секцииclickhouse-1
,clickhouse-2
,clickhouse-n
), необходимо внести в секциюenvironment
переменную с соответствующим ему значением:Блок кода language yaml SERVER_ID: 1 SERVER_ID: 2 SERVER_ID: n
В том же файле
/var/lib/visiology/scripts/v3/visiology3.yml
для каждой секцииclickhouse-1
,clickhouse-2
,clickhouse-n
и т.д. добавить строки в секциюconfigs
:Блок кода - source: clickhousecluster target: /etc/clickhouse-server/config.d/clickhousecluster.xml
В файле
/var/lib/visiology/scripts/v3/visiology3.yml
services
добавьте нужное количество сервисовclickhouse-keeper
следующего вида:Блок кода language yaml clickhouse-keeper-1: image: ${CLICKHOUSE_KEEPER_TAG} environment: SERVER_ID: 1 configs: - source: clickhousekeeper target: /etc/clickhouse-keeper/keeper_config.xml <<: [ *logging-options ] networks: visiology-3: labels: component: "v3-clickhouse-keeper-1"
Обратите внимание, что при копировании следует заменить индексы в строчках 1, 4, 12.
В файле
/var/lib/visiology/scripts/v3/visiology3.yml
в секцииdata-management-service/environment
заменить строкуCLICKHOUSE_HOST: ${CLICKHOUSE_HOST_1}
наБлок кода CLICKHOUSE_HOST_1: ${CLICKHOUSE_HOST_1} CLICKHOUSE_HOST_2: ${CLICKHOUSE_HOST_2} CLICKHOUSE_HOST_3: ${CLICKHOUSE_HOST_3}
Отредактируйте конфигурацию
formula-engine
в файле/var/lib/visiology/scripts/v3/configs/viqube2.json
, изменив поля следующим образом:Блок кода language json "EtlNodes": ["clickhouse1", "clickhouse2", "clickhouse3"], "QueryNodes": ["clickhouse1", "clickhouse2", "clickhouse3"], "ReplicationEnabled": true, "TargetReplicaNodesCount": 3, "ConfirmationReplicaNodesCount": 32,
где
EtlNodes
– ноды, на которых будет выполняться ETL. Вы можете, например, выделить ноды только для ETL, чтобы не влиять на производительность DAX-запросов.QueryNodes
– ноды, на которые будут отправляться запросы DAX.TargetReplicaNodesCount
– количество узлов-реплик, на которых должна храниться копия данных или выполняться операция. То есть, кластер будет пытаться хранить данные на таком количестве узлов.ConfirmationReplicaNodesCount
– количество узлов-реплик, которые должны подтвердить выполнение операции, прежде чем эта операция будет считаться завершённой и подтверждённой.Предположим, что
TargetReplicaNodesCount = 3
, аConfirmationReplicaNodesCount = 2
. Это означает, что кластер будет пытаться загрузить данные на три узла. Если один из узлов выйдет из строя в процессе загрузки, то загрузка будет считаться успешной, т.к. только двум узлам нужно подтвердить успешность операции. Соответственно, для достижения отказоустойчивости, значениеConfirmationReplicaNodesCount
должен быть меньше, чем значениеTargetReplicaNodesCount
.
Отредактируйте конфигурацию
data-management-service
в файле/var/lib/visiology/scripts/v3/configs/datamanagementservice.json
, добавив в секциюConnectionStrings
строки"clickhouse2", "clickhouse3", "clickhouseN"
В каждой строке нужно поменять цифру на соответствующую в частиHost={{ env "CLICKHOUSE_HOST_1" }}
Блок кода "ClickHouseSettings": { "ConnectionStrings": { "clickhouse1": "Compression=True;CheckCompressedHash=False;Compressor=lz4;Host={{ env "CLICKHOUSE_HOST_1" }};Port={{ env "CLICKHOUSE_PORT" }};Username={{ secret "CLICKHOUSE_FE_USER" }};Password={{ secret "CLICKHOUSE_FE_PASSWORD" }};Database={{ env "DM_CLICKHOUSE_DB" }};UseSession=true;set_max_execution_time=120;set_cancel_http_readonly_queries_on_client_close=1;", "clickhouse2": "Compression=True;CheckCompressedHash=False;Compressor=lz4;Host={{ env "CLICKHOUSE_HOST_2" }};Port={{ env "CLICKHOUSE_PORT" }};Username={{ secret "CLICKHOUSE_FE_USER" }};Password={{ secret "CLICKHOUSE_FE_PASSWORD" }};Database={{ env "DM_CLICKHOUSE_DB" }};UseSession=true;set_max_execution_time=120;set_cancel_http_readonly_queries_on_client_close=1;", "clickhouse3": "Compression=True;CheckCompressedHash=False;Compressor=lz4;Host={{ env "CLICKHOUSE_HOST_3" }};Port={{ env "CLICKHOUSE_PORT" }};Username={{ secret "CLICKHOUSE_FE_USER" }};Password={{ secret "CLICKHOUSE_FE_PASSWORD" }};Database={{ env "DM_CLICKHOUSE_DB" }};UseSession=true;set_max_execution_time=120;set_cancel_http_readonly_queries_on_client_close=1;" }, "MaxResultRows": 1000000
Загрузите образы
clickhouse, clickhouse-keeper, jdbc-bridge, cadvisor, node-exporter, promtail
в память докера на каждом сервере.Пересоздайте конфигурационные файлы, выполнив следующую команду:
Блок кода language bash /var/lib/visiology/scripts/v3/prepare-config.sh --force-regenerate-configs
Запустите платформу, выполнив следующую команду:
/var/lib/visiology/scripts/run.sh --start v3