184 похожих чатов

Коллеги добрый день. не подскажете доку с настройкой репликации в

кх? есть отдельный сервер с данными аналитики, к нему нужно поднять реплику, есть возможность это сделать безболезненно?

21 ответов

13 просмотров

Добрый день. Безболезненно наверное нет, нужно менять движок таблиц на репликейтед

- поднять zookeeper или clickhouse-keeper (он пока экспериментальный) https://www.howtoforge.com/tutorial/how-to-install-apache-zookeeper-on-ubuntu-2004/ - прописать его на обоих нодах в секции конфига <yandex><zookeeper> /etc/clickhouse/config.d/zookeeper.xml https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings_zookeeper - прописать <remote_servers> на обоих нодах тоже через config.d https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#server-settings-remote-servers см. пример кластера тут https://clickhouse.tech/docs/en/engines/table-engines/special/distributed/ это нужно для того когда появится ВТОРОЙ шард - прописать <yandex><macros> правильно на обоих нодах то же через config.d https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/#macros см. как макросы прописываются в доке https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/ - текущие таблицы для одного сервере должны быть с Engine=MergeTree и надо будет конвертировать их в ReplicatedMergeTree на обоих репликах новые таблицы ReplicatedMergeTree надо будет создать РУКАМИ... не забыть правильно макросы задать в параметрах ReplicatedMergeTree https://kb.altinity.com/altinity-kb-setup-and-maintenance/altinity-kb-converting-mergetree-to-replicated - подождать пока данные реплицируются - создать какой то load balancer например chproxy или просто nginx перед этими двумя нодами upstream + proxy_pass - когда потребуется поднять второй шард прочитать еще раз что такое Engine=distributed - установить две новые ноды, прописать на двух новых нодах правильно macros - создать пустые ReplicatedMergeTree таблицы -добавить новый шард из двух реплик на всех 4 нодах в remote_servers - не забыть про zookeeper

в общем это не как MySQL ;) xtrabackup —master-info; который сделает CHANGE MASTER TO ... START MYSQL SLAVE; и алга =)

SvPupok- Автор вопроса
Slach [altinity]
в общем это не как MySQL ;) xtrabackup —master-inf...

хм, у меня больше половины таблиц в collapsingmergetree, прям стало любопытно, как оно переживет

SvPupok
хм, у меня больше половины таблиц в collapsingmerg...

разницы между CollapsingMergeTree и обычным MergeTree нет, они как были так и осались это ЛОКАЛЬНЫЕ Таблицы в рамках одного сервера они не реплицируемы чтобы были реплицируемые надо чтобы серверов было УЖЕ ДВА и чтобы был ZK и надо конвертировать в ReplicatedCollapsingMergeTree вы видимо вообще не понимаете как репликация в clickhouse Работает ...

SvPupok- Автор вопроса
Slach [altinity]
разницы между CollapsingMergeTree и обычным MergeT...

поэтому и спрашиваю) у меня просто бэк в postgres и oracle) пока читаю официальную документацию, попробую на тесте поэксперементировать

SvPupok
поэтому и спрашиваю) у меня просто бэк в postgres ...

ок. тогда попробуйте прочитать несколько раз https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/

Slach [altinity]
- поднять zookeeper или clickhouse-keeper (он пока...

Спасибо! А не подскажите, если общий размер базы в КХ порядка 5 Тб и я хочу сделать одну реплику, то, поднимая дополнительные zookeeper на других серверах как понять сколько под него оперативы оптимально будет?

Alexqrid
Спасибо! А не подскажите, если общий размер базы в...

"поднимая дополнительные zookeeper" не очень понятно что имеете ввиду данные в zookeeper не шардятся все инстансы зукипер имеют одинаковые данные и синхронизируют изменения между собой объем оперативы ZK зависит от интенсивности INSERT вставок в clickhouse... ZK используется только для передачи метаданных новых партов и регистрации реплик ну и для Distributed DDL ( запросы которые модицируют структуру и выполнятся на ON CLUSTER ) Сами данные по http забираются репликой самостоятельно с той реплики которая зарегистрировала новый кусок данных (data part, см. system.parts в документации) 5 Терабайт, это прям вам надо отдельно скопировать и потом уже реплику аттачить...

Slach [altinity]
"поднимая дополнительные zookeeper" не очень понят...

>5 Терабайт, это прям вам надо отдельно скопировать и потом уже реплику аттачить... вот это меня всегда интересовало, если есть клонированные данные на новой ноде, можно ли приаттачить реплику. сработает ли подобный процесс? - создать replicated MT на новой ноде - system stop replica - положить файлы в детачед и аттачнуть - start repiica?

Slach [altinity]
"поднимая дополнительные zookeeper" не очень понят...

Понял, спасибо, а про доп. ZK имел в виду,что везде же советуют минимум 3 ZK ноды использовать.

【D】【J】
>5 Терабайт, это прям вам надо отдельно скопироват...

по идее да, но фиг знает как на практике я лично 5Tb Не пробовал =) придет denny и скажет что я ерунду говорю

Alexqrid
Понял, спасибо, а про доп. ZK имел в виду,что везд...

ок, это должны быть 3 одинаковые ноды связанные в ZK кластер и еще они должны быть отдельно от clickhouse чтобы не бороться с ним за диск и CPU потому что ZK при интенсивной вставке (в смысле кол-во запросов INSERT а не строк) вполне себе способен выжирать CPU и диск

Slach [altinity]
по идее да, но фиг знает как на практике я лично 5...

да, ждем. у меня вопрос скорее по поводу того что когда диски на массиве, там можно клонировать и благодаря дедупу, это будет в делом секунд.

Slach [altinity]
- поднять zookeeper или clickhouse-keeper (он пока...

Сделал всё по этим гайдам, но на обоих серверах КХ не запускается и пишет следующую ошибку в лог: <Error> Application: Not found: remote_servers.logger.shard.replica.host

Alexqrid
Сделал всё по этим гайдам, но на обоих серверах КХ...

remote_servers покажите из /var/lib/clickhouse/preprocessed_configs/config.xml?

Slach [altinity]
remote_servers покажите из /var/lib/clickhouse/pre...

Как можно автоматически настроить конфиги, если добавил ещё 2 сервера к примеру?

Slach [altinity]
remote_servers покажите из /var/lib/clickhouse/pre...

на мастере: <remote_servers> <logger> <shard> <replica> <internal_replication>true</internal_replication> <port>9000</port> <user>мой юзер</user> <password>мой пароль</password> </replica> <replica> <host>айпи слейв сервера тут</host> <port>9440</port> <user>мой юзер</user> <password>мой пароль</password> <secure>1</secure> </replica> </shard> </logger> на слейве: <remote_servers> <logger> <shard> <replica> <internal_replication>true</internal_replication> <port>9000</port> <user>мой юзер</user> <password>мой пароль</password> </replica> <replica> <host>айпи мастер сервера тут</host> <port>9440</port> <user>мой юзер</user> <password>мой пароль</password> <secure>1</secure> </replica> </shard> </logger>

Alexqrid
на мастере: <remote_servers> <logger> ...

везде host нужен внутри <replica>

Slach [altinity]
везде host нужен внутри <replica>

шел 13ый час моих тщетных попыток и наконец заработало. Спасибо!)

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Хтось використовував Vapor на Windows?
Jaroshevskii
15
Какое виндузовое сообщение приходит TTabSheet, что риэлайняться контролы на нем, даже у которых парент другой? Ситуация: открываю форму - кнопок нет, перелистываю на другой т...
Катерина Свиридова
7
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Карта сайта