【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群信息及分片、副本信息,在文本中间增加如下配置


    
        zk1
        2181
    
    
        zk2
        2181
    
    
        zk3
        2181
    

#3分片,2副本

    
        
            1
            true
            
                ck1
                9000
            
            
                ck2
                9000
            
        
        
            1
            true
            
                ck2
                9000
            
            
                ck3
                9000
            
        
        
            1
            true
            
                ck3
                9000
            
            
                ck1
                9000
            
        
    



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

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博客

你可能感兴趣的:(docker,clickhouse,容器)