目 录CONTENT

文章目录

docker-compose快速部署clickhouse

筱晶哥哥
2023-08-16 / 0 评论 / 0 点赞 / 432 阅读 / 7451 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-03-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

ClickHouse 是俄罗斯第一大搜索引擎 Yandex 开发的列式储存数据库。

令人惊喜的是,这个列式储存数据库的性能大幅超越了很多商业 MPP 数据库软件。

这个数据库用于数据分析还是香的,其他还有 Doris 等。

本文记录docker-compose快速部署clickhouse。

前提环境

安装docker和docker-compose,看我之前的文章。

部署 Clickhouse 服务

创建相关目录

mkdir -p /mydata/docker-compose/clickhouse
cd /mydata/docker-compose/clickhouse
mkdir data
mkdir log
mkdir config

编写编排文件 docker-compose.yml

version: '3'
 
services:
  clickhouse:
    image: yandex/clickhouse-server:22.1.3.7
    container_name: clickhouse
    restart: always
    ports:
      - "8123:8123"
      - "9000:9000"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      # 运行日志
      - ./log:/var/log/clickhouse-server
      # 数据持久
      - ./data:/var/lib/clickhouse:rw

启动

docker compose up -d

修改 Clickhouse 配置

进入容器查看配置:

docker exec -it clickhouse /bin/bash

clickhouse 默认配置路径是: /etc/clickhouse-server/

ctrl + p + q 退出容器,复制相关文件到到宿主机当前工作目录

docker cp clickhouse:/etc/clickhouse-server/config.xml ./config
 
docker cp clickhouse:/etc/clickhouse-server/users.xml ./config
 
docker cp clickhouse:/etc/clickhouse-server/config.d/docker_related_config.xml ./config

修改docker-compose 配置文件

version: '3'
 
services:
  clickhouse:
    image: yandex/clickhouse-server:22.1.3.7
    container_name: clickhouse
    restart: always
    ports:
      - "8123:8123"
      - "9000:9000"
    volumes:
      # 默认配置
      - ./config/docker_related_config.xml:/etc/clickhouse-server/config.d/docker_related_config.xml:rw
      - ./config/config.xml:/etc/clickhouse-server/config.xml:rw
      - ./config/users.xml:/etc/clickhouse-server/users.xml:rw
      - /etc/localtime:/etc/localtime:ro
      # 运行日志
      - ./log:/var/log/clickhouse-server
      # 数据持久
      - ./data:/var/lib/clickhouse:rw

关闭监听地址

vim ./config/docker_related_config.xml
<!-- 注掉以下内容 -->
<!-- <listen_host>::</listen_host> -->

打开监听地址

vim ./config/config.xml

搜索 listen_host

<listen_host>0.0.0.0</listen_host>

创建clickhouse用户 (可不创建,不创建默认为default)

查看 ./config/users.xml 文件,在 <users></users> 中加入自定义用户dev

<dev>
    <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
    <networks incl="networks" replace="replace">
        <ip>::/0</ip>
    </networks>
    <profile>default</profile>
    <quota>default</quota>
    <allow_databases>
        <database>default</database>
    </allow_databases>
</dev>

生成密码(必须进入容器内运行)

docker exec -it clickhouse /bin/bash

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

然后将生成的密码(第二行)替换掉<password_sha256_hex></password_sha256_hex>中的。

重新启动服务后,用DBeaver连接可成功。

0

评论区