【问题标题】:Clickhouse Replication not happening 'DB::Exception: No interserver IO endpoint named'Clickhouse 复制未发生“DB::Exception:没有命名的服务器间 IO 端点”
【发布时间】:2020-12-30 06:16:56
【问题描述】:

以下是 system.replication_queue 表中的错误:

代码:86,e.displayText() = DB::Exception: 收到来自远程的错误 服务器 ?endpoint=DataPartsExchange%3A%2Fclickhouse%2Ftables%2Freplicated%2Ftest8%2Freplicas%2FR01&part=1009_0_0_0&client_protocol_version=2&compress=false。 HTTP 状态代码:500 内部服务器错误,正文:代码:221, e.displayText() = DB::Exception: 没有命名的服务器间 IO 端点 DataPartsExchange:/clickhouse/tables/replicated/test8/replicas/R01, 堆栈跟踪(复制此消息时,始终包括行 下面):

我有 3 个 zookeeper 节点,以下是所有 3 个节点的配置:

    <zookeeper incl="zookeeper" optional="true" />
        
            <node index="1">
            <host>ZK_Node1/host>
            <port>2181</port>
            </node>
    
            <node index="2">
            <host>ZK_Node2</host>
            <port>2181</port>
            </node>
    
            <node index="3">
            <host>ZK_Node3</host>
            <port>2181</port>
            </node>    
</zookeeper>

它是一个 2 节点副本集,因此以下是每个副本的设置:

        <interserver_http_host>HostName of server</interserver_http_host> 

<remote_servers incl="clickhouse_remote_servers" >        
                <Prod_Cluster>
                    <shard>
                        <replica>
                            <host>Rep1_IPAddress</host>
                            <port>9000</port>
                        </replica>
                       <replica>
                             <host>Rep2_IPAddress</host>
                             <port>9000</port>
                         </replica>
                     </shard>
                <Prod_Cluster>
            </remote_servers>
        
    <macros incl="macros" optional="true" />
                <cluster>Prod_Cluster</cluster>
                <shard>1</shard>
                <replica>R01</replica>
            </macros>

不确定,为了避免上述错误,我缺少什么。

【问题讨论】:

  • 配置文件不是有效的 XML 可以吗?查找示例 - ZK_Node1/host>.
  • 检查一下:您只为一个节点提供了 ;您是否为第二个节点定义了单独的 macros-config(在 replica-field 中应该有另一个值)?

标签: clickhouse


【解决方案1】:

没有命名的服务器间 IO 端点

此错误的原因是 interserver_http_host 参数或服务器主机名中的设置不正确。

CH 副本在 ZK 中宣布自己并发布自己的地址(interserver_http_host / 主机名)

其他副本使用这些公告来下载部分。

主机名/interserver_http_host 不能是localhost。因为 localhost === 我,对于任何主机。

当一台机器尝试连接到本地主机时,它会连接到自己。

【讨论】:

  • 是的,我在 interserver_http_host 标签中使用了 localhost,这是实际问题。我将主机名更改为其他名称,现在正在复制。
【解决方案2】:

确保端口 9009 未被阻塞,它用于服务器间复制。


建议开启internal_replication(详见here

<remote_servers incl="clickhouse_remote_servers" >        
  <Prod_Cluster>
    <internal_replication>true</internal_replication> 
    <shard>
      <replica>
      ..

【讨论】:

  • 谢谢,我忘了。
猜你喜欢
  • 1970-01-01
  • 2019-10-27
  • 2019-04-08
  • 2020-04-28
  • 2020-06-22
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多