docker-compose快速部署clickhouse

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

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

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

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

前提环境

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

部署 Clickhouse 服务

创建相关目录

1
2
3
4
5
mkdir -p /mydata/docker-compose/clickhouse
cd /mydata/docker-compose/clickhouse
mkdir data
mkdir log
mkdir config

编写编排文件 docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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

启动

1
docker compose up -d

修改 Clickhouse 配置

进入容器查看配置:

1
docker exec -it clickhouse /bin/bash

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

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

1
2
3
4
5
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 配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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

关闭监听地址

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

打开监听地址

1
vim ./config/config.xml

搜索 listen_host

1
<listen_host>0.0.0.0</listen_host>

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

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

1
2
3
4
5
6
7
8
9
10
11
<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>

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

1
2
3
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连接可成功。

点击查看

本文标题:docker-compose快速部署clickhouse

文章作者:LiJing

发布时间:2023年08月16日 - 21:54:34

最后更新:2023年12月24日 - 09:33:01

原始链接:https://blog-next.xiaojingge.com/posts/3841511199.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------------本文结束 感谢您的阅读-------------------