在Zookeeper集群中重新添加丢失的Clickhouse副本

时间:2018-01-11 18:19:28

标签: apache-zookeeper clickhouse

我们之前在Zookeeper中完全同步了三个Clickhouse节点,直到其中一个节点丢失。

Clickhouse节点与以前一样完全重建(使用Ansible)并运行相同的CREATE TABLE ontime_replica ( ... ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/ontime_replica', '{replica}', FlightDate, (Year, FlightDate), 8192) 命令,导致以下错误。

命令:

Received exception from server:
Code: 253. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: Replica /clickhouse/tables/01/ontime_replica/replicas/clickhouse1 already exists..

错误是:

/

我们目前正在使用Zookeeper版本3.4.10,我想知道是否有方法删除Zookeeper中的现有副本,或者简单让Zookeeper知道这是现有版本的新版本复制品。

提前谢谢!

1 个答案:

答案 0 :(得分:3)

我对解决方案的处理方法不正确。最初,我以为我需要删除Zookeeper中的副本。相反,Clickhouse服务器中的以下命令可以解决此问题。

  • 从另一个工作节点复制SQL文件。该文件位于/var/lib/clickhouse/metadata/default

  • chown clickhouse:clickhouse <database>.sql

  • chmod 0640 <database>.sql

  • sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data

  • service clickhouse-server start