使用docker部署clickhouse数据库
一、安装docker
[root@~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #安装依赖包
Installed:
device-mapper-persistent-data.x86_64 0:0.8.5-3.el7_9.2 lvm2.x86_64 7:2.02.187-6.el7_9.4 yum-utils.noarch 0:1.1.31-54.el7_8
Dependency Installed:
device-mapper-event.x86_64 7:1.02.170-6.el7_9.4 device-mapper-event-libs.x86_64 7:1.02.170-6.el7_9.4 libaio.x86_64 0:0.3.109-13.el7 libxml2-python.x86_64 0:2.9.1-6.el7.5 lvm2-libs.x86_64 7:2.02.187-6.el7_9.4
python-chardet.noarch 0:2.2.1-3.el7 python-kitchen.noarch 0:1.1.1-5.el7
Dependency Updated:
device-mapper.x86_64 7:1.02.170-6.el7_9.4 device-mapper-libs.x86_64 7:1.02.170-6.el7_9.4 libxml2.x86_64 0:2.9.1-6.el7.5
Complete!
[root@~]#
[root@~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加yum资源包
Loaded plugins: fastestmirror
adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@~]#
[root@~]# yum makecache
[root@~]#
[root@~]# yum list docker-ce.x86_64 --showduplicates | sort -r #查看可以用版本
[root@~]#
[root@~]# yum install docker-ce #这里选择安装最新版本
Installed:
docker-ce.x86_64 3:20.10.6-3.el7
Dependency Installed:
audit-libs-python.x86_64 0:2.8.5-4.el7 checkpolicy.x86_64 0:2.5-8.el7 container-selinux.noarch 2:2.119.2-1.911c772.el7_8 containerd.io.x86_64 0:1.4.4-3.1.el7 docker-ce-cli.x86_64 1:20.10.6-3.el7
docker-ce-rootless-extras.x86_64 0:20.10.6-3.el7 docker-scan-plugin.x86_64 0:0.7.0-3.el7 fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 fuse3-libs.x86_64 0:3.6.1-4.el7 libcgroup.x86_64 0:0.41-21.el7
libsemanage-python.x86_64 0:2.5-14.el7 policycoreutils-python.x86_64 0:2.5-34.el7 python-IPy.noarch 0:0.75-6.el7 setools-libs.x86_64 0:3.3.8-4.el7 slirp4netns.x86_64 0:0.4.3-4.el7_8
Dependency Updated:
audit.x86_64 0:2.8.5-4.el7 audit-libs.x86_64 0:2.8.5-4.el7 policycoreutils.x86_64 0:2.5-34.el7
Complete!
[root@~]#
[root@~]#
[root@~]# docker --version #查看版本
Docker version 20.10.6, build 370c289
[root@~]#
配置docker文件在宿主机的目录(适用与服务器数据盘不在/ 分区)
[root@~]#mkdir -p /data/docker-data
[root@~]# cat << EOF >>/etc/docker/daemon.json
> {
> "data-root": "/data/docker-data"
> }
> EOF
[root@~]#
[root@~]# cat /etc/docker/daemon.json
{
"data-root": "/data/docker-data"
}
[root@~]#
[root@~]# service docker start #启动docker服务
Redirecting to /bin/systemctl start docker.service
二、docker安装clickhouse
[root@~]# docker pull yandex/clickhouse-server:21.4.3.21 #拉取clickhouse镜像
[root@~]# docker images #查看已下载的镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
yandex/clickhouse-server 21.4.3.21 9aeb1b103595 9 days ago 557MB
[root@~]# docker run -it -d --restart always --name=clickhouse-server -v /etc/localtime:/etc/localtime -p 8123:8123 -p 9000:9000 -p 9009:9009 yandex/clickhouse-server:21.4.3.21 #生成容器
f7c488c3e31a66c96dc8fbc7b0a024e7092f59c70fd4c2d780a28dd3dca56bff
[root@~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7c488c3e31a yandex/clickhouse-server:21.4.3.21 "/entrypoint.sh" 4 seconds ago Up 3 seconds 0.0.0.0:8123->8123/tcp, :::8123->8123/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp, 0.0.0.0:9009->9009/tcp, :::9009->9009/tcp clickhouse-server
三、 clickhouse 数据库修改密码&&添加用户
算出密码的明文和密文
[root@~]# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-' #安全起见此处密码为虚构,读者请根据实际算出的密码来配置
明文密码:AN7u8CHa
加密密码:0d4fb009a2082713343e434af372ddfeb4c7utr02f42916970e283e974449533
添加用户和密码
cd /etc/clickhouse-server
cat users.xml
将65行的 替换为 <password_sha256_hex>0d4fb009a2082713343e434af372ddfeb4c7d9f02f42916970e283e974449533</password_sha256_hex>
把default账号设为只读权限,并设置密码 yandex-->users-->default-->profile 节点设为 readonly 注释掉 yandex-->users-->default-->password 节点 新增 yandex-->users-->default-->password_sha256_hex 节点,填入生成的密码
新增root账号
<root>
<password_sha256_hex>0d4fb009a2082713343e434af372ddfeb4c7d9f02f42916970e283e974449533</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
也可本地编辑好users.xml文件 再复制到docker容器内
[root@~]# docker cp users.xml clickhouse-server:/etc/clickhouse-server/
使用客户端工具测试连接
用户名:root
密码为:AN7u8CHa



命令行连接:
进入容器
#docker exec -it clickhouse-xx
容器内登录数据库
# clickhouse-client -u root --password AN7u8CHa
ClickHouse client version 21.4.3.21 (official build).
Connecting to localhost:9000 as user root.
Connected to ClickHouse server version 21.4.3 revision 54447.
slave-2 :)
slave-2 :)
slave-2 :) show databases;
Query id: a892760f-1e38-4644-b67d-abad6d7ce455
┌─name────┐
│ default │
│ system │
│ yunwei │
└─────────┘
slave-2 :) use yunwei;
slave-2 :) show tables;
Query id: 88536af7-1c67-4844-8999-15b821f7936f
┌─name────────────┐
│ ontime_all │
│ ontime_local │
│ ontime_local_02 │
│ ontime_local_03 │
│ ontime_master │
└─────────────────┘
5 rows in set. Elapsed: 0.037 sec.
slave-2 :) select * from ontime_master;
Query id: 9d441a5e-7e64-4033-a9a4-af8240acfaa1
┌─Year─┬─Quarter─┬─Month─┬─DayofMonth─┬─DayOfWeek─┬─FlightDate─┐
│ 1981 │ 5 │ 5 │ 1 │ 6 │ 1970-01-01 │
│ 1981 │ 8 │ 5 │ 1 │ 6 │ 1970-01-01 │
│ 1982 │ 12 │ 5 │ 1 │ 6 │ 1970-01-01 │
│ 1982 │ 11 │ 5 │ 1 │ 6 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
│ 2098 │ 1 │ 1 │ 11 │ 8 │ 1970-01-01 │
└──────┴─────────┴───────┴────────────┴───────────┴
已可以看到数据,数据库安装完成!
更多推荐

所有评论(0)