【问题标题】:ClickHouse ReplicatedMergeTrees configuration problemsClickHouse ReplicatedMergeTrees 配置问题
【发布时间】:2017-09-05 21:02:48
【问题描述】:

我在两台不同的机器上有两个表,它们都将 zookeeper 作为守护进程运行,其中一个具有 myid 1,另一个具有 myid 2。

表在机器“1”上是这样配置的:

CREATE TABLE test(values)
ReplicatedMergeTree('/clickhouse/tables/01/test', '1', date, timestamp, 8192)

表在机器“2”上是这样配置的:

CREATE TABLE test(values)
ReplicatedMergeTree('/clickhouse/tables/01/test', '2', date, timestamp, 8192)

'/clickhouse/tables/01/test' 中的 01 可能是让我感到困惑的值...因为我使用它 '{layer}-{shard}'...但是因为我没有 remote_servers配置我假设我可以使用任何值并且没关系,因为我不想要查询分布,只是数据重复。

此外,这些表似乎“知道”彼此,因为创建两个副本号为“2”或“1”的表会导致错误提示此类表已存在。

如果我想使用复制,是否需要默认配置 remote_server?我是否需要专门为要复制的表配置 zookeeper ?你们有使用 clickhouse 设置数据复制的详细示例吗?

【问题讨论】:

    标签: sql apache-zookeeper yandex columnstore clickhouse


    【解决方案1】:

    看来你做的一切都是正确的。 {layer}-{shard} 部分是可选的 - 它只是简化了在许多服务器上创建类似表的过程。配置复制表的最低要求是 zookeeper 中所有副本共有的路径(按照惯例,此路径以 /clickhouse/tables/ 开头,但实际上任何唯一路径都可以)和每个副本唯一的标识符('1''2' 完全可以,但建议使用更具描述性的名称,以便您识别相应的主机)。

    复制不需要配置remote_servers,但需要zookeeper。您可以为所有复制的表使用单个 zookeeper 集群。

    【讨论】:

    • 路径(例如 /clickhouse/tables/)是否由 zookeeper 自动“创建”。如,如果我对所有表都有相同的路径,我需要在 zookeeper 中配置其他任何东西吗?
    • ClickHouse 将自动创建在引擎创建期间传递给 ReplicatedMergeTree 引擎的 zookeeper 路径、其不存在的父级以及其中的必要目录结构。删除最后一个副本表后,此路径将被删除。所以是的,一切都应该自动发生。你的困难的确切性质是什么?
    • 我目前收到的确切错误消息如下(我在其中一个副本上插入数据后收到此消息): DB::StorageReplicatedMergeTree::queueTask():: : Poco::Exception。代码:1000,e.code() = 0,e.displayText() = 找不到主机:otherMachineHostname,e.what() = 找不到主机
    • 好的,上一个显然是一个错误,可以通过编辑 /etc/hosts 来修复。
    • 现在我收到此错误:Poco::Exception。代码:1000,e.code() = 111,e.displayText() = 连接被拒绝,e.what() = 连接被拒绝 哪个可能与配置文件相关?也许我需要更改一些安全设置
    猜你喜欢
    • 2020-12-18
    • 2021-10-06
    • 2019-08-27
    • 1970-01-01
    • 2021-04-05
    • 2021-04-25
    • 2021-04-11
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多