问题描述
以下是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 Internal Server Error,正文:Code: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>
不确定,为避免上述错误,我缺少什么。
解决方法
确保端口 9009 没有被阻塞,该端口用于服务器间复制。
建议打开内部复制(请参阅详细信息here)
<remote_servers incl="clickhouse_remote_servers" >
<Prod_Cluster>
<internal_replication>true</internal_replication>
<shard>
<replica>
..
,
未命名服务器间IO端点
此错误的原因是interserver_http_host参数或服务器主机名中的设置不正确。
CH副本在ZK中声明自己并发布自己的地址(interserver_http_host /主机名)
其他副本使用这些公告下载零件。
主机名/ interserver_http_host不能为localhost
。因为localhost ===我,对于任何主机。
一台计算机尝试连接到本地主机时,它会连接到自身。