Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Примечание

Данная инструкция предназначена для развёртки трёх и более экземпляров ClickHouse.

  1. Остановите платформу, выполнив следующую команду:
    /var/lib/visiology/scripts/run.sh --stop

  2. Выполните шаги 1 - 5, описанные в разделе Ускорение загрузки данных (в пункте 5 заменять значения для RefreshDataJob__ParallelWorkers и Hangfire__WorkerCount необязательно).

  3. В файле /var/lib/visiology/scripts/v3/visiology3.yml для каждого экземпляра Clickhouse, добавленного на втором шаге (в секции clickhouse-1, clickhouse-2, clickhouse-n), необходимо внести в секцию environment переменную с соответствующим ему значением:

    Блок кода
    languageyaml
    SERVER_ID: 1
    SERVER_ID: 2
    SERVER_ID: n
  4. В том же файле /var/lib/visiology/scripts/v3/visiology3.yml для каждой секции clickhouse-1, clickhouse-2, clickhouse-n и т.д. добавить строки в секцию configs:

    Блок кода
          - source: clickhousecluster
            target: /etc/clickhouse-server/config.d/clickhousecluster.xml
  5. В файле /var/lib/visiology/scripts/v3/visiology3.yml services добавьте нужное количество сервисов clickhouse-keeper следующего вида:

    Блок кода
    languageyaml
      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"

    (warning) Обратите внимание, что при копировании следует заменить индексы в строчках 1, 4, 12.

  6. В файле /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}
  7. Отредактируйте конфигурацию formula-engine в файле /var/lib/visiology/scripts/v3/configs/viqube2.json, изменив поля следующим образом:

    Блок кода
    languagejson
        "EtlNodes": ["clickhouse1", "clickhouse2", "clickhouse3"],
        "QueryNodes": ["clickhouse1", "clickhouse2", "clickhouse3"],
        "ReplicationEnabled": true,
        "TargetReplicaNodesCount": 3,
        "ConfirmationReplicaNodesCount": 3,

    где

    • EtlNodes – ноды, на которых будет выполняться ETL. Вы можете, например, выделить ноды только для ETL, чтобы не влиять на производительность DAX-запросов.

    • QueryNodes – ноды, на которые будут отправляться запросы DAX.

    • TargetReplicaNodesCount – количество узлов-реплик, на которых должна храниться копия данных или выполняться операция. То есть, кластер будет пытаться хранить данные на таком количестве узлов.

    • ConfirmationReplicaNodesCount – количество узлов-реплик, которые должны подтвердить выполнение операции, прежде чем эта операция будет считаться завершённой и подтверждённой.

       (информация) Предположим, что TargetReplicaNodesCount = 3, а ConfirmationReplicaNodesCount = 2. Это означает, что кластер будет пытаться загрузить данные на три узла. Если один из узлов выйдет из строя в процессе загрузки, то загрузка будет считаться успешной, т.к. только двум узлам нужно подтвердить успешность операции. Соответственно, для достижения отказоустойчивости, значение ConfirmationReplicaNodesCount должен быть меньше, чем значение TargetReplicaNodesCount.

  8. Отредактируйте конфигурацию 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
  9. Загрузите образы clickhouse, clickhouse-keeper, jdbc-bridge, cadvisor, node-exporter, promtail в память докера на каждом сервере.

  10. Пересоздайте конфигурационные файлы, выполнив следующую команду:

    Блок кода
    languagebash
    /var/lib/visiology/scripts/v3/prepare-config.sh --force-regenerate-configs
  11. Запустите платформу, выполнив следующую команду:
    /var/lib/visiology/scripts/run.sh --start v3

🕑 Время чтения: 1 мин.


Нужна дополнительная помощь?

Свяжитесь с технической поддержкой.