为了我们方便找到我们的配置信息,我们将CK集群做分开配置

修改集群配置


  • 修改vim /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>
  15. <remote_servers>
  16. <ck_cluster>
  17. <shard>
  18. <weight>1</weight>
  19. <internal_replication>true</internal_replication>
  20. <replica>
  21. <host>ck1</host>
  22. <port>9000</port>
  23. </replica>
  24. <replica>
  25. <host>ck2</host>
  26. <port>9000</port>
  27. </replica>
  28. </shard>
  29. <shard>
  30. <weight>1</weight>
  31. <internal_replication>true</internal_replication>
  32. <replica>
  33. <host>ck2</host>
  34. <port>9000</port>
  35. </replica>
  36. <replica>
  37. <host>ck3</host>
  38. <port>9000</port>
  39. </replica>
  40. </shard>
  41. <shard>
  42. <weight>1</weight>
  43. <internal_replication>true</internal_replication>
  44. <replica>
  45. <host>ck3</host>
  46. <port>9000</port>
  47. </replica>
  48. <replica>
  49. <host>ck1</host>
  50. <port>9000</port>
  51. </replica>
  52. </shard>
  53. </ck_cluster>
  54. </remote_servers>

删除以上两个配置信息,新增以下内容

  1. <remote_servers incl="clickhouse_remote_servers" />
  2. <zookeeper incl="zookeeper-servers" optional="true" />
  3. <include_from>/etc/clickhouse-server/ck-cluster.xml</include_from>
  • remote_servers 标志我们在外部文件中引用的集群配置节点是clickhouse_remote_servers
  • zookeeper 标志我们在外部文件引用的ZK集群配置节点是zookeeper-servers
  • include_from 标志我们引用的外部配置文件,指定文件的绝对路径

新建集群配置文件


刚刚我们指定了/etc/clickhouse-server/ck-cluster.xml配置文件,此时我们需要去对该文件做配置

  • 创建新的配置文件
  1. touch /etc/clickhouse-server/ck-cluster.xml

在新的配置文件中增加zookeeperclickhouse集群信息

  1. <yandex>
  2. <zookeeper-servers>
  3. <node index="1">
  4. <host>zk1</host>
  5. <port>2181</port>
  6. </node>
  7. <node index="2">
  8. <host>zk2</host>
  9. <port>2181</port>
  10. </node>
  11. <node index="3">
  12. <host>zk3</host>
  13. <port>2181</port>
  14. </node>
  15. </zookeeper-servers>
  16. <clickhouse_remote_servers>
  17. <ck_cluster>
  18. <shard_1>
  19. <weight>1</weight>
  20. <internal_replication>true</internal_replication>
  21. <replica>
  22. <host>ck1</host>
  23. <port>9000</port>
  24. </replica>
  25. <replica>
  26. <host>ck2</host>
  27. <port>9000</port>
  28. </replica>
  29. </shard_1>
  30. <shard_2>
  31. <weight>1</weight>
  32. <internal_replication>true</internal_replication>
  33. <replica>
  34. <host>ck2</host>
  35. <port>9000</port>
  36. </replica>
  37. <replica>
  38. <host>ck3</host>
  39. <port>9000</port>
  40. </replica>
  41. </shard_2>
  42. <shard_3>
  43. <weight>1</weight>
  44. <internal_replication>true</internal_replication>
  45. <replica>
  46. <host>ck3</host>
  47. <port>9000</port>
  48. </replica>
  49. <replica>
  50. <host>ck1</host>
  51. <port>9000</port>
  52. </replica>
  53. </shard_3>
  54. </ck_cluster>
  55. </clickhouse_remote_servers>
  56. <networks>
  57. <ip>::/0</ip>
  58. </networks>
  59. </yandex>

此处需要注意的是在yandex中配置的相关节点一定到和config.xml中的<remote_servers incl="clickhouse_remote_servers" /> <zookeeper incl="zookeeper-servers" optional="true" />这两个属性的incl一致,否则会扫描不到集群标志

修改配置后我们不需要重启服务,ClickHouse会自动加载修改后的配置信息

我们配置多个集群使用多个配置文件即可,多个replica节点配置多个也是可以的