clickhouse副本问题

发布于 1 个月前 作者 liunaijie 370 次浏览 来自 问答

大家好,我现在在搭建clickhouse的分布式集群,在数据副本的地方遇到了一些不懂的地方,在网上找了一些文章,但是出来的结果也跟我预期的不一致,所以发出来请大家帮帮忙。 我写了一个1分片2副本的配置。本机docker启动了两个实例。 metrika里面的配置如下:

   <clickhouse_remote_servers>
       <ckcluster_1_2>
           <!--分片1-->
           <shard>
               <!--副本1-->
               <replica>
                   <host>172.17.0.3</host>
                   <port>9000</port>
               </replica>
               <!--副本2-->
               <replica>
                   <host>172.17.0.4</host>
                   <port>9000</port>
               </replica>
           </shard>
       </ckcluster_1_2>
   </clickhouse_remote_servers>

macros的配置是:

<yandex>
    <macros>
    	<shard>01</shard>
        <replica>01</replica>  另一个实例的配置是02
    </macros>
</yandex>

建表语句是:

CREATE TABLE cluster_test.user_local ON CLUSTER ckcluster_1_2 (
	name String,
	age UInt8
)
ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/ckcluster_1_2/user_local', '{replica}')
PARTITION BY age
ORDER BY tuple()
SETTINGS index_granularity = 8192;

然后我在一个节点上写入数据后,在另一个节点并不能读到数据。 然后我又创建创建了一个分布式表

CREATE TABLE IF NOT EXISTS cluster_test.user_all ON CLUSTER ckcluster_1_2 
AS cluster_test.user_local 
ENGINE = Distributed(ckcluster_1_2, cluster_test, user_local, rand());

向这个分布式表插入数据后,在另一个节点还是读取不到备份的数据。 然后查看挂载出来的存储位置,发现并没有数据备份到备份节点。 请教一下大家,多分片多副本的配置到底是如何配置的。。。 以及,我如果使用6台机器做分片,3台机器做副本(每台备份两个节点)是否可行,如果可行配置该怎么写。 谢谢。

1 回复

你用的版本是哪一个, 我也碰到了这个问题, 目前排查试验了很多种方案, 都找不到原因,

回到顶部