Docker中分布式部署clickhouse

编程

Docker 中分布式部署 clickhouse

启动服务

docker run --add-host=ck2:172.17.0.3 --add-host=ck3:172.17.0.4 -d --name ck1 -h ck1 --ip 172.17.0.2 --ulimit nofile=262144:262144 -p 8124:8123 -p 9001:9000 yandex/clickhouse-server

docker run --add-host=ck1:172.17.0.2 --add-host=ck3:172.17.0.4 -d --name ck2 -h ck2 --ip 172.17.0.3 --ulimit nofile=262144:262144 -p 8125:8123 -p 9002:9000 yandex/clickhouse-server

docker run --add-host=ck1:172.17.0.2 --add-host=ck2:172.17.0.3 -d --name ck3 -h ck3 --ip 172.17.0.4 --ulimit nofile=262144:262144 -p 8126:8123 -p 9003:9000 yandex/clickhouse-server

参数说明

  • add-host: 增加除自己之外的 hosts 配置
  • name: container 名称
  • h: host 名称
  • ip: 分配给 container 的地址

clickhouse 分布式配置

修改容器配置文件

先将容器中的配置文件复制到本地进行修改, 找到配置节点remote_servers, 增加如下配置:

<my_ck_cluster>

<shard>

<internal_replication>true</internal_replication>

<replica>

<host>ck01</host>

<port>9000</port>

</replica>

</shard>

<shard>

<internal_replication>true</internal_replication>

<replica>

<host>ck02</host>

<port>9000</port>

</replica>

</shard>

<shard>

<internal_replication>true</internal_replication>

<replica>

<host>ck03</host>

<port>9000</port>

</replica>

</shard>

</my_ck_cluster>

如果需要使用 zookeeper, 则在 zookeeper 下, 增加如下配置:

<zookeeper incl="zookeeper-servers" optional="true" />

<zookeeper>

<node index="1">

<host>zk01</host>

<port>2181</port>

</node>

<node index="2">

<host>zk02</host>

<port>2181</port>

</node>

<node index="3">

<host>zk03</host>

<port>2181</port>

</node>

</zookeeper>

将修改好的配置文件复制回容器中

docker cp config.xml ck1:/etc/clickhouse-server/config.xml

docker cp config.xml ck2:/etc/clickhouse-server/config.xml

docker cp config.xml ck3:/etc/clickhouse-server/config.xml

重启相关容器

docker restart ck1 ck2 ck3

查看 /etc/hosts 内容

docker exec -it ck1 /bin/bash

less /etc/hosts 内容如下:

172.17.0.2      ck1

172.17.0.3 ck2

172.17.0.4 ck3

以上是 Docker中分布式部署clickhouse 的全部内容, 来源链接: utcz.com/z/514905.html

回到顶部