简体   繁体   English

使用Zookeeper设置Clickhouse 3节点循环集群时,clickhouse副本/服务器无法相互连接

[英]clickhouse replica/server is not able to connect to each other when setting up a clickhouse 3 node circular cluster using zookeeper

Data is not getting replicated to each clickhouse replica. 数据不会复制到每个Clickhouse副本。 While checking clickhouse-server log it is showing 在检查Clickhouse-server日志时,它显示

DB::StorageReplicatedMergeTree::queueTask()::: Poco::Exception. DB :: StorageReplicatedMergeTree :: queueTask()::: Poco :: Exception。 Code: 1000, e.code() = 0, e.displayText() = Host not found: ip-172-1-140-243 (version 19.9.2.4) 代码:1000,e.code()= 0,e.displayText()=找不到主机:ip-172-1-140-243(版本19.9.2.4)

I have 3 different machines on each machine I've installed both clickhouse and zookeeper. 我在安装Clickhouse和Zookeeper的每台机器上都有3台不同的机器。 I'm trying to setup 3 node clickhouse cluster using zookeeper. 我正在尝试使用Zookeeper设置3节点Clickhouse群集。 I have followed these steps for configuration https://blog.uiza.io/replicated-and-distributed-on-clickhouse-part-2/ . 我已按照以下步骤进行配置https://blog.uiza.io/replicated-and-distributed-on-clickhouse-part-2/ I have created tables and replicas on all clickhouse instances and verified in zookeeper as well. 我已经在所有Clickhouse实例上创建了表和副本,并在zookeeper中进行了验证。 Directory got created in zookeeper for all replicas. 在zookeeper中为所有副本创建了目录。 Have created /etc/metrica.xml , zoo.cfg , /etc/clickhouse-server/config.xml on all instances. 在所有实例上都创建了/etc/metrica.xml,zoo.cfg,/etc/clickhouse-server/config.xml。 Providing all 3 files from 1 instance 提供1个实例的全部3个文件

/etc/metrica.xml file /etc/metrica.xml文件

<?xml version="1.0"?>
<yandex>
<clickhouse_remote_servers>
    <perftest_3shards_1replicas>
        <shard>
             <internal_replication>true</internal_replication>
            <replica>
                <default_database>dwh01</default_database>
                <host>172.1.34.199</host>
                <port>9000</port>
            </replica>
            <replica>
                <default_database>dwh01</default_database>
                <host>172.1.73.156</host>
                <port>9000</port>
            </replica>
        </shard>

         <shard>
             <internal_replication>true</internal_replication>
            <replica>
                <default_database>dwh02</default_database>
                <host>172.1.73.156</host>
                <port>9000</port>
            </replica>
            <replica>
                <default_database>dwh02</default_database>
                <host>172.1.140.243</host>
                <port>9000</port>
            </replica>
        </shard>

        <shard>
             <internal_replication>true</internal_replication>
            <replica>
                <default_database>dwh03</default_database>
                <host>172.1.140.243</host>
                <port>9000</port>
            </replica>
            <replica>
                <default_database>dwh03</default_database>
                <host>172.1.34.199</host>
                <port>9000</port>
            </replica>
        </shard>
    </perftest_3shards_1replicas>
</clickhouse_remote_servers>


<zookeeper-servers>
  <node index="1">
    <host>172.1.34.199</host>
    <port>2181</port>
  </node>
 <node index="2">
    <host>172.1.73.156</host>
    <port>2181</port>
  </node>
 <node index="3">
    <host>172.1.140.243</host>
    <port>2181</port>
  </node> 
</zookeeper-servers>

<macros replace="replace">
  <cluster>OLAPLab</cluster>
  <dwhshard00>01</dwhshard00>
  <dwhshard01>03</dwhshard01>
  <dwhreplica00>01</dwhreplica00>
  <dwhreplica01>02</dwhreplica01>
  <shard>01</shard>
  <replica>node1</replica>
</macros>
<interserver_http_host>ip-172-1-34-199</interserver_http_host>
</yandex>

/etc/clickhouse-server/config.xml /etc/clickhouse-server/config.xml

Only added this line rest of the config is default config
<listen_host>::</listen_host>

/usr/lib/zookeeper/conf/zoo.cfg /usr/lib/zookeeper/conf/zoo.cfg

maxClientCnxns=50
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/var/lib/zookeeper
# the port at which the clients will connect
clientPort=2181
# the directory where the transaction logs are stored.
dataLogDir=/var/lib/zookeeper
server.1=172.1.34.199:2888:3888
server.2=172.1.73.156:2888:3888
server.3=172.1.140.243:2888:3888

/etc/hosts / etc / hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost6 localhost6.localdomain6
127.0.0.1    ip-172-1-34-199
127.0.0.1    172.1.34.199

What should I change to get replicated data in all replicas belongs to all instances 我应该更改什么以获取所有副本中的复制数据属于所有实例

Are the clickhouse and zookeeper ports accessible among the machines ? 机器之间是否可以访问Clickhouse和Zookeeper端口?

As in, can you run wget http://172.1.140.243:9000 ? 像这样,您可以运行wget http://172.1.140.243:9000吗? Same applies to the zookeper ports respectively. 相同的方法分别适用于Zookeper端口。

看来您需要将两个节点( 172.1.34.199172.1.73.156 )的hosts文件添加到主机

172.1.140.243 ip-172-1-140-243

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM