Docker/安装包部署ClickHouse
- 一、docker部署
- 1.安装Docker
- 2.拉取ClickHouse镜像
- 2.1 选择拉取版本
- 2.2 拉取镜像
- 3.启动ClickHouse
- 3.1 确定好挂载目录
- 3.2 测试环境
- 3.3 生产环境
- 3.1.1 获取配置文件
- 3.1.2 配置文件中添加用户
- 3.1.3 启动容器
- 4.使用DBeaver连接
- 二、安装包安装
- 1.准备工作
- 1.1 服务器节点
- 1.2 关闭防火墙(所有节点)
- 1.3 文件打开数调整 ( 所有节点 )
- 1.4 取消selinux(所有节点)
- 1.5 安装依赖(所有节点)
- 1.6 验证是否支持sse 4.2指令集 ( 所有节点 )
- 1.7 重启服务器
- 2.安装-单机
- 2.1 下载安装包
- 2.2 执行安装命令
- 3.开启远程访问
- 4. 启动/关闭/开机自启命令
- 5.相关文件配置
- 3.安装-集群
一、docker部署
1.安装Docker
- 安装教程:https://qingsi.blog.csdn.net/article/details/131270071
2.拉取ClickHouse镜像
2.1 选择拉取版本
- 第一种方式:查找镜像:docker search mysql
- 第二种方式:去官网查看镜像tag,选择自己需要的版本,否则会下载最新版本:https://hub.docker.com/r/clickhouse/clickhouse-server
2.2 拉取镜像
- 使用下面的命令,支持Linux的x86和arm架构
# 拉取最新的ClickHouse镜像(推荐)
docker pull clickhouse/clickhouse-server
# 拉取指定版本的MySQL镜像
docker pull clickhouse/clickhouse-server:22.12
3.启动ClickHouse
3.1 确定好挂载目录
- 生产部署的时候,需要查看挂在的目录是否是系统最大的盘。
- 查看路径的磁盘大小:df -h
- 假设/data是系统的存储盘
3.2 测试环境
# 1.拉取镜像
docker pull clickhouse/clickhouse-server:22.12
# 2.启动镜像
docker run \
-p 8123:8123 \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-e CLICKHOUSE_DB=test \
-e CLICKHOUSE_USER=root \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-e TZ=Asia/Shanghai \
-e CLICKHOUSE_PASSWORD=123456 \
-d clickhouse/clickhouse-server:22.12
# 3.使用工具连接使用即可
- 参数解释:
- -p 8123:8123:将主机的 8123 端口映射到容器内的 8123 端口,用于访问 ClickHouse 的 HTTP 查询服务。
- –name clickhouse-server:为容器指定一个名称,方便后续管理和操作。
- –ulimit nofile=262144:262144:设置容器内 ClickHouse 进程的文件打开数量限制,防止因文件描述符不足导致问题。
- -e CLICKHOUSE_DB=test:设置 ClickHouse 的默认数据库名为 test。
- -e CLICKHOUSE_USER=root:设置 ClickHouse 的默认管理员用户名为 root。
- -e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1:启用 ClickHouse 的访问控制功能,需要设置管理员账号密码才能进行操作。
- -e TZ=Asia/Shanghai:设置容器的时区为上海时间,便于处理时间相关的数据。
- -e CLICKHOUSE_PASSWORD=123456:设置 ClickHouse 的管理员账号密码为 123456。
- -d clickhouse/clickhouse-server:22.12:使用 clickhouse/clickhouse-server 镜像中的 ClickHouse 服务,并以后台方式运行容器。
3.3 生产环境
- 容器数据相关的文件夹需要挂载到宿主机上, 分别有:clickhouse的配置文件、数据文件、日志文件。进而实现Clickhouse数据持久化, 方便数据备份、迁移、恢复。
- 宿主机对应文件夹:
- 配置文件的文件夹:/data/clickhouse/conf
- 日志文件夹:/data/clickhouse/log
- 数据文件夹:/data/clickhouse/data
3.1.1 获取配置文件
# 1.启动一个临时容器,为了拿配置文件
docker run --rm -d --name=temp-clickhouse-server clickhouse/clickhouse-server:22.12
# 2.复制配置文件到宿主机
mkdir -p /data/clickhouse/conf
docker cp temp-clickhouse-server:/etc/clickhouse-server/users.xml /data/clickhouse/conf/users.xml
docker cp temp-clickhouse-server:/etc/clickhouse-server/config.xml /data/clickhouse/conf/config.xml
# 3.删除临时容器
docker rm -f temp-clickhouse-server
3.1.2 配置文件中添加用户
- 添加root用户,打开users.xml文件,把下面的内容复制到 <users></users>标签中
<root>
<password_sha256_hex>18138372fad4b94533cd4881f03dc6c69296dd897234e0cee83f727e2e6b1f63</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
其中18138372fad4b94533cd4881f03dc6c69296dd897234e0cee83f727e2e6b1f63生成方式
echo -n "qwe123" | sha256sum | tr -d '-'
18138372fad4b94533cd4881f03dc6c69296dd897234e0cee83f727e2e6b1f63
3.1.3 启动容器
sudo docker run -d --name=clickhouse-server \
-p 8123:8123 \
-e TZ=Asia/Shanghai \
--volume=/data/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
--volume=/data/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
--volume=/data/clickhouse/log:/var/log/clickhouse-server \
--volume=/data/clickhouse/data:/var/lib/clickhouse/ \
clickhouse/clickhouse-server:22.12
- 参数解释:
- -d:将容器设置为在后台运行。
- –name=clickhouse-server:给容器指定一个名称,这里是 “clickhouse-server”。
- -p 8123:8123:将主机的 8123 端口映射到容器的 8123 端口,用于通过 HTTP 访问 ClickHouse 的查询服务。
- -e TZ=Asia/Shanghai:设置容器的时区为亚洲/上海,以适应上海时区的时间。
- –volume=/data/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml:将主机中 /data/clickhouse/conf/config.xml 文件映射到容器内的 /etc/clickhouse-server/config.xml 文件,这样可以提供自定义的 ClickHouse 配置文件。
- –volume=/data/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml:将主机中 /data/clickhouse/conf/users.xml 文件映射到容器内的 /etc/clickhouse-server/users.xml 文件,这样可以提供自定义的用户认证信息。
- –volume=/data/clickhouse/log:/var/log/clickhouse-server:将主机中 /data/clickhouse/log 目录映射到容器内的 /var/log/clickhouse-server 目录,用于存储 ClickHouse 的日志文件。
- –volume=/data/clickhouse/data:/var/lib/clickhouse/:将主机中 /data/clickhouse/data 目录映射到容器内的 /var/lib/clickhouse/ 目录,用于存储 ClickHouse 的数据文件。
- clickhouse/clickhouse-server:22.12:基于 ClickHouse 22.12 版本的 Docker 镜像,用于启动 ClickHouse 服务。
4.使用DBeaver连接
二、安装包安装
1.准备工作
1.1 服务器节点
- 注意:单机才需要一个节点,如果是集群,需要多个节点
- 192.168.11.130、192.168.11.129
1.2 关闭防火墙(所有节点)
# 这个重启后就会打开
systemctl status firewalld.service
systemctl stop firewalld.service
# 打开端口(建议)
1.3 文件打开数调整 ( 所有节点 )
# 查看当前文件打开最大数量
ulimit -n
在 /etc/security/limits.conf和/etc/security/limits.d/20-nproc.conf 这两个文件的末尾加入以下内容:
注意:没有20-nproc.conf 该文件就创建一个
[root@localhost ~]# vi /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 131072
* hard nproc 131072
[root@localhost ~]# vi /etc/security/limits.d/20-nproc.conf
* soft nofile 65535
* hard nofile 65535
* soft nproc 131072
* hard nproc 131072
1.4 取消selinux(所有节点)
# 修改 /etc/selinux/config 中的 SELINUX=disabled 后重启
vi /etc/selinux/config
SELINUX=disabled
1.5 安装依赖(所有节点)
# root用户执行:
yum install -y libtool
yum install -y *unixODBC*
1.6 验证是否支持sse 4.2指令集 ( 所有节点 )
# 需要验证当前服务器的CPU是否支持SSE 4.2指令集,因为向量化执行需要用到这项特性
[root@localhost ~]# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported
1.7 重启服务器
reboot
2.安装-单机
2.1 下载安装包
- 下载地址
# 创建一个临时文件夹
mkdir temp && cd temp
# 选择21.10.6.2版本下载,共有四个安装包
wget https://packages.clickhouse.com/rpm/stable/clickhouse-client-21.10.6.2-2.noarch.rpm
wget https://packages.clickhouse.com/rpm/stable/clickhouse-server-21.10.6.2-2.noarch.rpm
wget https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-21.10.6.2-2.x86_64.rpm
wget https://packages.clickhouse.com/rpm/stable/clickhouse-common-static-dbg-21.10.6.2-2.x86_64.rpm
2.2 执行安装命令
rpm -ivh clickhouse-*
- 中途会让设置密码,如果是演示环境就回车就可以了。
3.开启远程访问
# 在 /etc/clickhouse-server 路径下的config.xml中查找listen_host 并将如下注释打开,使其可以被除本机以外的其他IP所访问
vi /etc/clickhouse-server/config.xml
# 配置完重新加载配置:
clickhouse restart
4. 启动/关闭/开机自启命令
启停命令
1. 启动
clickhouse-server start
systemctl start clickhouse-server.service
2. 查看状态
clickhouse-server status
systemctl status clickhouse-server.service
3. 重启
clickhouse-server restart
systemctl restart clickhouse-server.service
4.开机自启
systemctl enable clickhouse-server.service
systemctl disable clickhouse-server.service
5.相关文件配置
- 文件目录的配置都在:/etc/clickhouse-server/config.xml
- 数据目录:<path>
- 日志目录:
- 正常日志标签:<log>
- 错误日志标签:<errorlog>