【Clickhouse_docker-copose】安装部署

【Clickhouse docker-compose 安装部署】

一、基础资源

硬件资源:3台centos7.8虚拟机

软件资源:docker-24.0.1,docker-compose-2.18.1,zookeeper3.8,clickhouse-23

配置信息:自行配置/etc/hosts 的ip与别名映射

二、分布式集群,docker-compose.yaml编写

1.vi docker-compose.yaml

version: '2'
services:
  clickhouse:
    image: docker.io/bitnami/clickhouse:23
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
    network_mode: "host"
    volumes:
    #配置文件的目录
      - ./etc:/opt/bitnami/clickhouse/etc/ 
      - ./clickhouse_data:/bitnami/clickhouse
    depends_on:
      - zookeeper
  zookeeper:
    image: docker.io/bitnami/zookeeper:3.8
    restart: always
    #开启host网络模式保证zk的网络畅通
    network_mode: "host"
    volumes:
    #创建相对路径
      - "./zookeeper/zookeeper_data:/bitnami"
    environment: 
      - ALLOW_ANONYMOUS_LOGIN=yes
      #zoo_id,每个节点需要更换
      - ZOO_SERVER_ID=1
      - ZOO_LISTEN_ALLIPS_ENABLED=yes
      - ZOO_SERVERS=zk1:2888:3888,zk2:2888:3888,zk3:2888:3888

volumes:
  clickhouse_data:
    driver: local

注意:分布式下需要修改ZOO_SERVER_ID的id号,起始id必须为1,且有顺序。

  1. 运行docker-compose
#运行,拉取镜像,并自动创建zookeeper、clickhouse_data、etc等目录
$ docker-compose up

3.赋权限

#需要给目录赋权限,否则容器中无法会权限报错
$ chown -R 1001:1001 ./zookeeper
$ chown -R 1001:1001 ./clickhouse_data
$ chown -R 1001:1001 ./etc
三、配置文件

1.从运行中的Clickhouse容器中获取config.xml、users.xml配置文件

#root进入容器,查看配置文件在哪
$ docker exec -ti -u root clickhouse-容器id bash
#记录配置文件位置,退出容器然后将文件拷贝出来到宿主机./etc目录下
$ docker cp fa20edc65b74(容器id):/etc/clickhouse-server/config.xml ./etc
$ docker cp fa20edc65b74():/etc/clickhouse-server/users.xml ./etc

2.修改config.xml文件

配置文件中配置集Clickhouse、zookeeper群信息及分片、副本信息,在文本中间增加如下配置

<zookeeper>
    <node index="1">
        <host>zk1</host>
        <port>2181</port>
    </node>
    <node index="2">
        <host>zk2</host>
        <port>2181</port>
    </node>
    <node index="3">
        <host>zk3</host>
        <port>2181</port>
    </node>
</zookeeper>
#3分片,2副本
<remote_servers>
    <ck_cluster>
        <shard>
            <weight>1</weight>
            <internal_replication>true</internal_replication>
            <replica>
                <host>ck1</host>
                <port>9000</port>
            </replica>
            <replica>
                <host>ck2</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
            <weight>1</weight>
            <internal_replication>true</internal_replication>
            <replica>
                <host>ck2</host>
                <port>9000</port>
            </replica>
            <replica>
                <host>ck3</host>
                <port>9000</port>
            </replica>
        </shard>
        <shard>
            <weight>1</weight>
            <internal_replication>true</internal_replication>
            <replica>
                <host>ck3</host>
                <port>9000</port>
            </replica>
            <replica>
                <host>ck1</host>
                <port>9000</port>
            </replica>
        </shard>
    </ck_cluster>
</remote_servers>

<macros>
#分片id与上对应
    <shard>01</shard>    
#下列配置副本名称每个节点都不一样
    <replica>rep_1_2</replica>
</macros>

3.重新运行docker-compose up

4.集群验证

#使用连接工具连接clickhouse任意节点,运行以下sql,查看集群概况
$ select * from system.clusters;
四、注意事项

需要开启防火墙对应的端口

#开启8123,2181,2888,3888等端口,
$ firewall-cmd --add-port=8123/tcp --permanent
$ firewall-cmd --add-port=2181/tcp --permanent
$ firewall-cmd --add-port=2888/tcp --permanent
$ firewall-cmd --add-port=3888/tcp --permanent
$ firewall-cmd --reload

参考:clickhouse分区操作实践_clickhouse多级分区_逃跑的沙丁鱼的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值