из двух нод, подключили ZK (кластер из трёх нод).
создаю на обеих СН базу данных (create database db1)
создаю на обеих СН в этой БД таблицу:
create table db2.span
(
duration UInt32,
is_error UInt8
)
-- engine MergeTree
engine ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}/{table}', '{replica}')
partition by tuple()
order by (duration);
(макросы shard и replica заполнены)
ПРОБЛЕМА: вставляю данные на одной нод, на второй ничего не появляется
в логах ошибки про ZK:
<Error> DynamicQueryHandler: Code: 62. DB::Exception: Syntax error: failed at position 46 ('') (line 2, col 13): ‘ZooKeeperHardwareExceptions’. Unrecognized token: ''. (SYNTAX_ERROR),
при этом запросы со страницы https://docs.altinity.com/operationsguide/clickhouse-zookeeper/zookeeper-monitoring/#zookeeper-monitoring-quick-list
возвращают какие-то значения, похожие на рабочие (ошибок не видно)
данные из system.events по Zoo*
ZooKeeperInit,1
ZooKeeperTransactions,116315
ZooKeeperList,51078
ZooKeeperCreate,35
ZooKeeperExists,26019
ZooKeeperGet,39173
ZooKeeperSet,1
ZooKeeperMulti,9
ZooKeeperWatchResponse,3
ZooKeeperUserExceptions,3
ZooKeeperWaitMicroseconds,74153079
ZooKeeperBytesSent,8354027
ZooKeeperBytesReceived,13969774
куда ещё посмотреть, что проверить?
ZK живой
<Error> DynamicQueryHandler: Code: 62. DB::Exception: Syntax error: failed at position 46 ('') (line 2, col 13): ‘ZooKeeperHardwareExceptions’. Unrecognized token: ''. (SYNTAX_ERROR), SELECT * FROM system.macros;
replica,md-stage-clickhouse-01 shard,01
в какую сторону ещё можно покопать?
engine ReplicatedMergeTree('/clickhouse/tables/{shard}/{database}/{table}', '{replica}') А почему кстати нет = после ENGINE?
> А почему кстати нет = после ENGINE? это ничего не меняет: и так, и так работает одинаково. наверно, просто сахар show create table возвращет с engine =
не могу настроить репликацию таблицы ReplicatedMT кластер на две ноды в логах ошибка: auto DB::StorageReplicatedMergeTree::processQueueEntry(ReplicatedMergeTreeQueue::SelectedEntryPtr)::(anonymous class)::operator()(DB::StorageReplicatedMergeTree::LogEntryPtr &) const: Poco::Exception. Code: 1000, e.code() = 111, Connection refused https://pastebin.com/YiQTct1a - полный текст ошибки select * из system.zookeeper в СН по пути для данной таблицы возвращает какие-то данные. Т.е. как я понимю, зукипер работает и таблица там появилась таблица создавалась с выражением on cluster - на второй ноде она появилась, всё нормально. Т.е. как я понимаю, кластер СН настроен на каком-то базовом уровне (если что, аналогичная проблема с репликацией данных и если руками реплицируемую таблицу создавать на обеих нодах без on cluster) но данные не реплицируются хоть тресни. Куда ещё копать, накиньте вариантов?
у default пользователя пароль меняли? или какие то ограничения типа networks/host_regexp, networks/ip ставили? между серверами коннект по interserver_http_port есть?
как это достоверно проверить? telnet'ом с одной на другую подключается 9009
пароли не меняли. Просто установленный СН. на первой ноде: [root@md-stage-clickhouse-01 config.d]# lsof -p $(pgrep clickhouse) -i -Pan COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME clickhous 20912 clickhouse 32u IPv4 9725507 0t0 TCP 192.168.222.106:31420->192.168.222.34:2181 (ESTABLISHED) clickhous 20912 clickhouse 33u IPv4 9727048 0t0 TCP *:9005 (LISTEN) clickhous 20912 clickhouse 34u IPv4 9727049 0t0 TCP *:9363 (LISTEN) clickhous 20912 clickhouse 38u IPv4 9769084 0t0 TCP 192.168.222.106:9009->192.168.222.107:25426 (ESTABLISHED) clickhous 20912 clickhouse 78u IPv4 9727044 0t0 TCP *:8123 (LISTEN) clickhous 20912 clickhouse 81u IPv4 9727045 0t0 TCP *:9000 (LISTEN) clickhous 20912 clickhouse 83u IPv4 9727046 0t0 TCP *:9009 (LISTEN) clickhous 20912 clickhouse 88u IPv4 9727047 0t0 TCP *:9004 (LISTEN) на второй ноде: # lsof -p $(pgrep clickhouse) -i -Pan COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME clickhous 22434 clickhouse 32u IPv4 7433409 0t0 TCP 192.168.222.107:29090->192.168.222.33:2181 (ESTABLISHED) clickhous 22434 clickhouse 33u IPv4 7435381 0t0 TCP *:9005 (LISTEN) clickhous 22434 clickhouse 35u IPv4 7435382 0t0 TCP *:9363 (LISTEN) clickhous 22434 clickhouse 42u IPv4 7435377 0t0 TCP *:8123 (LISTEN) clickhous 22434 clickhouse 43u IPv4 7435378 0t0 TCP *:9000 (LISTEN) clickhous 22434 clickhouse 44u IPv4 7435379 0t0 TCP *:9009 (LISTEN) clickhous 22434 clickhouse 45u IPv4 7435380 0t0 TCP *:9004 (LISTEN)
telnet достаточно. ну порт 9009 вроде тоже достаточно если в SELECT * FROM system.zookeeper WHERE path='/путь/который/ReplicatedMergeTree/replicas' отображаются несколько реплик то все должно работать расшарьте SELECT * FROM system.query WHERE query_id='(94a8c268-c87c-413b-890a-eacc4bc9d3ed' чтобы понять в контексте какого запроса ошибка возникает
нет system.query. Его, наверно, надо как-то включать. нашли, что помогает отключение файрволла на машинах с СН. будет разбираться, что именно в нём приводит к подобному состоянию. спасибо за отклик!
Обсуждают сегодня