
大家好,上次给大家分享LS同学根据亲身经历整理的一篇关于搭建ClickHouse集群的文章上篇(原创 | ClickHouse初体验之集群搭建指南(上))。
上篇文章主要讲述ClickHouse之3节点3分片1副本的集群搭建过程,本篇文章将介绍3节点3分片2副本的搭建过程,相当于一台机器起了两个 ClickHouse 的服务,因此在配置文件中,我们需要通过修改配置文件、修改端口和集群配置来达到这种需求。
希望对大家有帮助,特别是CK初学者。
一、准备工作

二、修改配置文件
在BD-P-GP01机器创建并修改config9001.xml,并且修改配置文件
[root@BD-P-GP01 clickhouse-server]# cp /etc/clickhouse-server/config.xml /etc/clickhouse-server/config9001.xml [root@BD-P-GP01 clickhouse-server]# vim /etc/clickhouse-server/config9001.xml <?xml version="1.0"?> <!-- CH的config是热部署的 --> <clickhouse> <!-- 端口配置 --> <http_port>8124</http_port> <tcp_port>9001</tcp_port> <interserver_http_port>9010</interserver_http_port> <!-- 端口配置,因为涉及到一台机器起两个服务,存在端口冲突,需要注释掉 --> <!--mysql_port>9004</mysql_port--> <!--postgresql_port>9005</postgresql_port--> <!--日志存储修改--> <log>/var/log/clickhouse-server/clickhouse-server-9001.log</log> <errorlog>/var/log/clickhouse-server/clickhouse-server-9001.err.log</errorlog> <!--取消该注释,开启远程访问--> <listen_host>::</listen_host> <!-- 指定数据存储路径 --> <path>/data2/clickhouse/</path> <tmp_path>/data2/clickhouse/tmp/</tmp_path> <!-- user_files_path:包含用户文件的目录,在表函数file()中使用。--> <user_files_path> /data2/clickhouse/user_files/ </user_files_path> <!--用来存储创建的用户和角色--><access_control_path>/data2/clickhouse/access/</access_control_path><!--包含输入格式文件--><format_schema_path>/data2/clickhouse/format_schemas/<format_schema_path><!-- 远程服务器,分布式表引擎和集群表功能使用的集群的配置 --> <remote_servers incl="clickhouse_remote_servers" /> <distributed_ddl> <!-- 在ZooKeeper中与DDL查询队列的路径 --> <path>/clickhouse/task_queue/ddl</path> </distributed_ddl> <!-- zk启动 --> <zookeeper incl="zookeeper-servers" optional="true" /> <!-- 启动macros,并指定地址 --> <macros incl="macros" optional="true" /> <!--引入metrika.xml--> <include_from>/etc/clickhouse-server/config.d/metrika9001.xml</include_from></clickhouse> |
修改完成之后分发到其他2台机器,BD-P-GP02,BD-P-GP03
在BD-P-GP01机器创建并修改metrica9001.xml,并且修改配置文件:
[root@BD-P-GP01 clickhouse-server]# cp /etc/clickhouse-server/config.d/metrica.xml /etc/clickhouse-server/config.d/metrica9001.xml [root@BD-P-GP01 clickhouse-server]# vim /etc/clickhouse-server/config.d/metrica9001.xml <?xml version="1.0"?> <clickhouse> <!--新版的clickhouse集群的首个标签必须是clickhouse,而不是yandex --> <!-- 集群配置 --> <clickhouse_remote_servers> <!-- 集群名称,确保和config.xml中的<remote_servers incl="clickhouse_remote_servers" /> 的incl的中的参数一致--> <perftest_3shards_1replicas> <shard> <!-- 建议一个台机器一个节点,避免资源争夺 --> <!-- 表示是否只将数据写入其中一个副本,默认为false,表示写入所有副本,在复制表的情况下可能会导致重复和不一致,所以这里一定要改为true。--> <internal_replication>true</internal_replication> <!-- 副本配置,ch没有主备之分 --> <replica> <host>BD-P-GP01</host> <port>9000</port> <user>default</user> <password>root</password> </replica> <replica> <host>BD-P-GP02</host> <port>9001</port> <user>default</user> <password>root</password> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>BD-P-GP02</host> <port>9000</port> <user>default</user> <password>root</password> </replica> <replica> <host>BD-P-GP03</host> <port>9001</port> <user>default</user> <password>root</password> </replica> </shard> <shard> <internal_replication>true</internal_replication> <replica> <host>BD-P-GP03</host> <port>9000</port> <user>default</user> <password>root</password> </replica> <replica> <host>BD-P-GP01</host> <port>9001</port> <user>default</user> <password>root</password> </replica> </shard> </perftest_3shards_1replicas> </clickhouse_remote_servers> <!-- 本节点副本名称replica,配置后能方便后续创建复制表时不用指定zk路径,每台机器的配置不一样,确保和每台机器的host名称一致 --> <macros> <shard>03</shard> <replica>BD-P-GP01</replica> </macros> <!-- ZK配置 --> <zookeeper-servers> <node index="1"> <host>zk1</host> <port>2181</port> </node> <node index="2"> <host>zk2</host> <port>2181</port> </node> <node index="3"> <host>zk3</host> <port>2181</port> </node> </zookeeper-servers> <!-- 数据压缩算法配置 --> <clickhouse_compression> <case> <min_part_size>10000000000</min_part_size> <min_part_size_ratio>0.01</min_part_size_ratio> <method>lz4</method> </case> </clickhouse_compression> </clickhouse> |
修改完成之后分发到其他2台机器,BD-P-GP02,BD-P-GP03
BD-P-GP01的节点的配置:
<macros> <shard>01</shard> <replica>BD-P-GP01</replica> </macros>
|
<macros> <shard>03</shard> <replica>BD-P-GP01</replica> </macros> |
BD-P-GP02的节点的配置:
<macros> <shard>02</shard> <re |