搭建单分片二副本集群,使用MergeTree引擎测试数据同步
服务器:
127.0.0.1 clickhouse
127.0.0.2 clickhouse + keeper
结构图
1.修改hosts
vi /etc/hosts
添加需要部署的ip和名字
127.0.0.1 node1
127.0.0.2 node2
2. node1配置文件修改
2.1 修改/etc/clickhouse-server/user.xml
<clickhouse>
<profiles>
<!-- Default settings. -->
<default>
<!--默认值为0,表示不启用原子写入;改为与smartbi_replica集群中的副本数相等-->
<insert_quorum>2</insert_quorum>
<!--默认值为600000毫秒(10分钟);改为30分钟以防止写入和同步副本超时-->
<insert_quorum_timeout>1800000</insert_quorum_timeout>
</default>
<!-- Profile that allows only read queries. -->
<readonly>
<readonly>1</readonly>
</readonly>
</profiles>
</clickhouse>
2.2 修改/etc/clickhouse-server/config.d/metrika.xml
<?xml version="1.0"?>
<yandex>
<clickhouse_remote_servers>
<smartbi>
<!-- 数据分片1 -->
<shard>
<!-- 可选的。写入分布式表时是否只将数据写入其中一个副本。默认值:false(将数据写入所有副本)。 -->
<internal_replication>false</internal_replication>
<replica>
<!-- host:数据分片节点,可以写机器名,ip地址。-->
<host>node1</host>
<!-- port:消息传递TCP端口,默认9000,不要与http端口混淆 -->
<port>9000</port>
<!-- user:用于连接远程服务器的用户名。默认值:default。该用户必须有权限访问该远程服务器。访问权限配置在 users.xml 文件中。 -->
<user>default</user>
<!-- password:用于连接远程服务器的密码。默认为空,users.xml 文件中配置。 -->
<password></password>
</replica>
<replica>
<host>node2</host>
<port>9000</port>
<user>default</user>
<password></password>
</replica>