我们需要在每台节点中部署ClickHouse部署方式详见ClickHouse安装部署

我们一般配置ClickHouse集群只需要修改Zookeeper存储和节点添加即可。

节点信息


主机 IP
ck1 10.10.0.1
ck2 10.10.0.2
ck3 10.10.0.3

配置Zookeeper


/etc/clickhouse-server/config.xml文件中添加以下配置信息

  1. <zookeeper>
  2. <node index="1">
  3. <host>zk1</host>
  4. <port>2181</port>
  5. </node>
  6. <node index="2">
  7. <host>zk2</host>
  8. <port>2181</port>
  9. </node>
  10. <node index="3">
  11. <host>zk3</host>
  12. <port>2181</port>
  13. </node>
  14. </zookeeper>

改配置文件主要配置连接Zookeeper的信息,每个节点的index不可重复

注意要添加到yandex节点中

配置ClickHouse集群


配置ClickHouse集群节点需要配置remote_servers节点

/etc/clickhouse-server/config.xml文件中添加以下配置信息

  1. <remote_servers>
  2. <ck_cluster>
  3. <shard>
  4. <weight>1</weight>
  5. <internal_replication>true</internal_replication>
  6. <replica>
  7. <host>ck1</host>
  8. <port>9000</port>
  9. </replica>
  10. <replica>
  11. <host>ck2</host>
  12. <port>9000</port>
  13. </replica>
  14. </shard>
  15. <shard>
  16. <weight>1</weight>
  17. <internal_replication>true</internal_replication>
  18. <replica>
  19. <host>ck2</host>
  20. <port>9000</port>
  21. </replica>
  22. <replica>
  23. <host>ck3</host>
  24. <port>9000</port>
  25. </replica>
  26. </shard>
  27. <shard>
  28. <weight>1</weight>
  29. <internal_replication>true</internal_replication>
  30. <replica>
  31. <host>ck3</host>
  32. <port>9000</port>
  33. </replica>
  34. <replica>
  35. <host>ck1</host>
  36. <port>9000</port>
  37. </replica>
  38. </shard>
  39. </ck_cluster>
  40. </remote_servers>
  • ck_cluster 集群标识,可以自行规定,在创建分布式表(引擎为Distributed)时需要用到。
  • weight 每个分片的写入权重值,数据写入时会有较大概率落到weight值较大的分片,这里全部设为1。
  • internal_replication 是否启用内部复制,即写入数据时只写入到一个副本,其他副本的同步工作靠复制表和ZooKeeper异步进行。

我们在shard分片中设置的是循环分片这样保证我们复制的节点某一个宕机后可以正常运行

将配置分发到所有部署ClickHouse的节点中进行服务重启

此时我们的ClickHouse集群已经搭建完成!