ClickHouse之docker-compose安装

本次安装采用的是Ubuntu18.04

  1. 安装docker-compose

    sudo curl -L "https://github.com/docker/compose/releases/download/v2.4.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    其中v2.4.1为版本号,可以根据需要修改, docker-compose官方地址

  2. 赋予docker-compose可执行权限

    sudo chmod +x /usr/local/bin/docker-compose
  3. 创建软连接

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  4. 查看docker-compose版本

    docker-compose --version

    至此docker-compose安装完成

  5. Docker中运行ClickHouse官方指南

  6. 新建一个文件夹专门用于存放ClickHouse的docker-compose.yml文件

    cd /usr/local/
    mkdir clickhouse-docker
  7. 在上面创建的文件夹中新建docker-compose.yml

    version: '3'

    services:
    clickhouse:
    image: yandex/clickhouse-server
    container_name: clickhouse
    restart: always
    ports:
    - "8123:8123"
    - "9090:9000"
    volumes:
    - /home/clickhouse/data:/var/lib/clickhouse
    - /home/clickhouse/log/:/var/log/clickhouse-server/
    ulimits:
    nofile:
    soft: 262144
    hard: 262144

    8123 :HTTP协议端口

    9000 :TCP协议端口

    9009 :集群数据复制

    ulimit nofile : ClickHouse Server正常使用需要修改容器系统的文件句柄数量配置

    /etc/clickhouse-server: 这个是ClickHouse Server默认的配置文件目录,包括全局配置 config.xml和用户配置users.xml等等

    /var/lib/clickhouse:这个是ClickHouse Server默认的数据存储目录

    /var/log/clickhouse-server:这个是ClickHouse Server默认的日志输出目录

    便管理配置、查看数据和搜索日志,可以把上面这三个目录直接映射到宿主机的具体目录:

    Docker容器目录 宿主机目录
    /etc/clickhouse-server /home/clickhouse/config
    /var/lib/clickhouse /home/clickhouse/data
    /var/log/clickhouse-server /home/clickhouse/log
  8. 执行docker-compose命令

    docker-compose up -d

    查看运行状态,浏览器访问 clickhouse运行机器ip:8123,如果成功,浏览器会返回OK,至此clickhouse安装完成。

  9. 修改默认配置,首先把默认配置文件复制出来

    docker cp clickhouse(容器名):/etc/clickhouse-server/config.xml /home/clickhouse/config/
    docker cp clickhouse(容器名):/etc/clickhouse-server/users.xml /home/clickhouse/config/
  10. 修改docker-compose 配置文件

    volumes:
    # 默认配置 写入config.d/users.d 目录防止更新后文件丢失
    - /home/clickhouse/config/config.xml:/etc/clickhouse-server/config.d/config.xml:rw
    - /home/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml:rw
    # 数据持久
    - /home/clickhouse/data:/var/lib/clickhouse:rw
    # 运行日志
    - /home/clickhouse/log/:/var/log/clickhouse-server/
  11. 修改配置文件后重启docker-compose

    sudo docker-compose down
    sudo docker-compose up -d

    到此数据持久化,默认配置修改,日志映射完成

  12. 浏览器访问 clickhouse运行机器ip:8123,出现OK那么配置成功,查看容器日志

    sudo docker-compose logs -f

    日志命令图片

  13. 进入容器查看服务数据库

    # 进入容器
    docker exec -it clickhouse /bin/bash
    # 使用clickhouse-client连接数据库,并查看数据库
    SHOW databases;

    查看clickhouse数据库

    可以看到我们的服务运行正常!

  14. 创建用户登录,因为我们的users.xml已经挂载到 /home/clickhouse/config/users.xml,所以直接修改本地的users.xml,在default标签上添加如下代码

    <run>
    <password>938d9935b0cbe96c639eb1a6ad4388e194b991672e6273becfe8ed99f0a7fb8c</password>
    <networks>
    <ip>::/0</ip>
    </networks>
    <profile>default</profile>
    <quota>default</quota>
    </run>

    用户配置

    上图第二个红框中,是生成sha256的代码,需要进入到clickhouse容器中执行:

    PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'

    生成用户密码

  15. 重启容器,验证配置。

    #停止容器
    sudo docker-compose down
    #启动容器
    sudo docker-compose up -d
    #进入容器
    docker exec -it clickhouse /bin/bash
    #通过密码连接clickhouse
    clickhouse-client -u run -h 127.0.0.1 --password iFG6r5Pw

    至此服务就搭建完成!

  16. 可视化工具Tabix,在docker-compose.yml中加入下面代码

    tabix:
    image: spoonest/clickhouse-tabix-web-client
    container_name: tabix
    restart: always
    ports:
    - "8080:80"
    logging:
    driver: "json-file"
    options:
    max-size: "1m"

    保存并重启docker-compose,之后访问clickhouse服务器地址:8080,效果如下图所示:

    Tabix