clickhouse由zk集群切回单机模式,启动报错

  • Post author:
  • Post category:其他


使用集群模式,需要在/etc/clickhouse-server/config.d下创建一个X文件(具体内容看其他大佬的帖子),然后在/etc/clickhouse-server/config.xml中include_from前面添加的X文件。

切回单机,则把/etc/clickhouse-server/config.xml中<include_from>标签删掉即可。

最开始用的单机模式,然后尝试了zk集群模式的副本和切片,当切回单机模式后启动报错。

报错信息如下:

No macro ‘shard’ in config while processing substitutions in ‘/clickhouse/tables/{shard}/st_order_mt’ at 20: Cannot attach table `default`.`st_order_mt` from metadata file /var/lib/clickhouse/metadata/default/st_order_mt.sql from query ATTACH TABLE st_order_mt (`id` UInt32, `sku_id` String, `total_amount` Decimal(16, 2), `create_time` DateTime) ENGINE = ReplicatedMergeTree(‘/clickhouse/tables/{shard}/st_order_mt’, ‘{replica}’) PARTITION BY toYYYYMMDD(create_time) PRIMARY KEY id ORDER BY (id, sku_id) SETTINGS index_granularity = 8192

网上查了很多帖子,都说是上述的两个xml配置的问题,试了两个多小时,各种办法都试了,还是解决不了问题。

最后是看了下面这个帖子才明白问题出在哪


ClickHouse常见问题及其解决方案_Quinto0的博客-CSDN博客

原来是我前面尝试zk集群模式的副本、切片的时候创建的表,仍然存在于clickhouse的数据库中,单机启动的时候,识别不了这些集群模式的表,从而导致clickhouse启动报错。

解决办法:将/var/lib/clickhouse/metadata/ 下的SQL与/var/lib/clickhouse/data/ 下的数据备份之后删除,并重启clickhouse服务。



版权声明:本文为vitamin729原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。