一、Linux宿主机部署
1、环境准备
- 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04。
- 硬件要求:
- 至少 2 核 CPU 和 4GB 内存。
- 足够的磁盘空间(根据数据量评估)。
- CPU需支持SSE4.2指令集(可通过以下命令检查):
bash示例:
grep -q sse4_2 /proc/cpuinfo && echo “SSE4.2 supported” || echo “SSE4.2 not supported”
- 网络:确保服务器可以访问互联网以下载必要的软件包。
2、安装ClickHouse
(1)、CentOS上使用YUM源安装
1. 添加 ClickHouse 官方仓库
bash示例:
sudo yum install -y yum-utils
sudo rpm --import https://repo.clickhouse.com/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.com/rpm/clickhouse.repo
2. 安装 ClickHouse
bash示例:
sudo yum install -y clickhouse-server clickhouse-client
3. 启动服务
bash示例:
sudo systemctl start clickhouse-server # 启动示例
sudo systemctl enable clickhouse-server # 设置开机自启
(2)、Ubuntu使用APT安装
1. 添加 ClickHouse 官方仓库
bash示例:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates dirmngr
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4
echo "deb https://repo.clickhouse.com/deb/stable/main/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
2. 安装 ClickHouse
bash示例:
sudo apt-get update
sudo apt-get install -y clickhouse-server clickhouse-client
3. 启动服务
bash示例:
sudo service clickhouse-server start
(3)、手动安装(适用于离线环境)
1. 下载 ClickHouse 二进制文件
访问 ClickHouse Releases,下载适合的版本,例如:
bash示例:
wget https://builds.clickhouse.com/master/amd64/clickhouse
chmod +x clickhouse
sudo mv clickhouse /usr/bin/
2. 创建默认配置目录
bash示例:
sudo mkdir -p /etc/clickhouse-server
sudo cp /usr/share/clickhouse/config.xml /etc/clickhouse-server/
sudo cp /usr/share/clickhouse/users.xml /etc/clickhouse-server/
3. 启动 ClickHouse
bash示例:
sudo clickhouse-server --config-file=/etc/clickhouse-server/config.xml
3、部署验证
(1)、通过客户端连接
1. 使用 clickhouse-client 连接到服务器:
bash示例:
clickhouse-client
执行后,可以成功进入交互式命令行界面。
2. 执行简单的 SQL 查询:
sql示例:
SHOW DATABASES;
或:
SELECT 1;
前者返回数据库信息,后者返回1,则说明客户端连接成功,即ClickHouse已正确安装并运行。
(2)、检查服务状态
1. 检查 ClickHouse 服务是否正在运行:
bash示例:
sudo systemctl status clickhouse-server
或者:
bash示例:
ps aux | grep clickhouse
2. 查看日志文件:
默认日志路径为 /var/log/clickhouse-server/,检查日志是否有错误信息:
bash示例:
tail -f /var/log/clickhouse-server/clickhouse-server.log
(3)、测试 HTTP 接口
- 默认情况下,ClickHouse 提供 HTTP 接口,默认端口为 8123。
- 测试接口是否可用:
bash示例:
curl 'http://localhost:8123/?query=SELECT+version()'
输出类似于以下内容:
22.9.1.1
4、配置ClickHouse
- 主要配置文件及路径:
- 主配置文件:/etc/clickhouse-server/config.xml
- 用户配置文件:/etc/clickhouse-server/users.xml
(1)、设置监听地址
编辑 config.xml 文件,找到 <listen_host> 部分,设置为 0.0.0.0 以允许所有 IP 访问:
xml示例:
<listen_host>0.0.0.0</listen_host>
(2)、修改用户权限
编辑 users.xml 文件,设置默认用户的密码或添加新用户:
xml示例:
<password>your_password</password>
(3)、配置防火墙(可选)
开放ClickHouse的默认端口(HTTP端口8123和TCP端口9000):
bash示例:
Ubuntu/Debian:
sudo ufw allow 8123/tcp
sudo ufw allow 9000/tcp
CentOS/RHEL:
sudo firewall-cmd --permanent --add-port=8123/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --reload
(4)、重启服务
修改配置后需要重启 ClickHouse 服务:
bash示例:
sudo service clickhouse-server restart # Ubuntu/Debian
sudo systemctl restart clickhouse-server # CentOS/RHEL
5、常见问题排查
(1)、服务无法启动
- 检查日志文件 /var/log/clickhouse-server/clickhouse-server.log。
- 确保端口未被占用(默认端口:8123 HTTP, 9000 TCP)。
(2)、客户端连接失败
- 确认 clickhouse-server 是否正在运行。
- 检查防火墙规则,确保开放了 8123 和 9000 端口。
(3)、性能问题
- 确保服务器有足够的内存和磁盘空间。
- 调整配置文件中的缓存和线程池参数。
6、可视化工具推荐
- 客户端工具:clickhouse-client(命令行)。
- 图形化工具:
- DBeaver:支持ClickHouse驱动,可直接连接。
- Grafana:结合ClickHouse插件实现数据可视化。
二、Docker部署
1、环境准备
- 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04。
- 硬件要求:
- 至少 2 核 CPU 和 4GB 内存。
- 足够的磁盘空间(根据数据量评估)。
- CPU需支持SSE4.2指令集(可通过以下命令检查):
bash示例:
grep -q sse4_2 /proc/cpuinfo && echo "SSE4.2 supported" || echo "SSE4.2 not supported"
- 网络:确保服务器可以访问互联网以下载必要的镜像。
2、安装Docker
(1)、CentOS上安装Docker
bash示例:
更新系统包
sudo yum update -y
安装 Docker
sudo yum install -y docker
启动并设置 Docker 开机自启
sudo systemctl start docker
sudo systemctl enable docker
检查 Docker 版本
docker --version
(2)、Ubuntu上安装Docker
bash示例:
更新系统包
sudo apt-get update
安装 Docker
sudo apt-get install -y docker.io
启动并设置 Docker 开机自启
sudo systemctl start docker
sudo systemctl enable docker
检查 Docker 版本
docker --version
3、拉取 ClickHouse 镜像
从 Docker Hub 拉取官方的 ClickHouse 镜像:
bash示例:
docker pull clickhouse/clickhouse-server
4、运行 ClickHouse 容器
(1)、基础命令(不推荐)
启动一个 ClickHouse 容器,并将默认端口映射到主机上:
bash示例:
docker run -d \
--name clickhouse-server \
-p 8123:8123 \ # HTTP 接口
-p 9000:9000 \ # TCP 接口
-p 9009:9009 \ # 复制协议(可选)
clickhouse/clickhouse-server
(2)、挂载数据目录(推荐)
持久化存储数据,建议将本地目录挂载到容器中:
bash示例:
docker run -d \
--name clickhouse-server \
-p 8123:8123 \
-p 9000:9000 \
-v /path/to/local/data:/var/lib/clickhouse \
-v /path/to/local/config:/etc/clickhouse-server \
clickhouse/clickhouse-server
解释:
- /path/to/local/data:用于存储 ClickHouse 数据文件。
- /path/to/local/config:用于存储 ClickHouse 配置文件。
(3)、自定义配置启动
如果需要自定义配置,可以将主机上的 config.xml 和 users.xml 文件挂载到容器中:
bash示例:
docker run -d \
--name clickhouse-server \
-p 8123:8123 \
-p 9000:9000 \
-v /path/to/local/config/config.xml:/etc/clickhouse-server/config.xml \
-v /path/to/local/config/users.xml:/etc/clickhouse-server/users.xml \
clickhouse/clickhouse-server
5、验证部署是否成功
(1)、通过客户端连接
1. 使用 clickhouse-client 连接到容器中的 ClickHouse:
bash示例:
docker exec -it clickhouse-server clickhouse-client
如果成功进入交互式命令行界面,则说明 ClickHouse 已正确运行。
2. 执行简单的 SQL 查询:
sql示例:
SHOW DATABASES;
或:
SELECT 1;
如果显示数据库列表或后者返回1,说明客户端连接成功,即ClickHouse已正确安装并运行。
(2)、测试HTTP接口
- 默认情况下,ClickHouse 提供 HTTP 接口,默认端口为 8123。
- 测试接口是否可用:
bash示例:
curl 'http://localhost:8123/?query=SELECT+version()'
输出类似于以下内容:
22.9.1.1
(3)、检查容器状态
1. 查看容器是否正在运行:
bash示例:
docker ps
输出中应包含 clickhouse-server 容器。
2. 查看容器日志:
bash示例:
docker logs clickhouse-server
6、管理 ClickHouse 容器
bash示例:
停止容器
docker stop clickhouse-server
启动容器
docker start clickhouse-server
删除容器
docker rm -f clickhouse-server
7、配置 ClickHouse
(1)、修改配置文件
- 如果挂载了配置文件(如 config.xml 和 users.xml),可以直接在主机上编辑这些文件。
- 修改完成后,重启容器以应用更改:
bash示例:
docker restart clickhouse-server
(2)、设置监听地址
编辑 config.xml 文件,找到 <listen_host> 部分,设置为 0.0.0.0 以允许所有 IP 访问:
xml示例:
<listen_host>0.0.0.0</listen_host>
(3)、修改用户权限
编辑 users.xml 文件,设置默认用户的密码或添加新用户:
xml示例:
<password>your_password</password>
(4)、配置防火墙(可选)
开放ClickHouse的默认端口(HTTP端口8123和TCP端口9000):
bash示例:
Ubuntu/Debian:
sudo ufw allow 8123/tcp
sudo ufw allow 9000/tcp
CentOS/RHEL:
sudo firewall-cmd --permanent --add-port=8123/tcp
sudo firewall-cmd --permanent --add-port=9000/tcp
sudo firewall-cmd --reload
7、可视化工具推荐
- 客户端工具:clickhouse-client(命令行)。
- 图形化工具:
- DBeaver:支持ClickHouse驱动,可直接连接。
- Grafana:结合ClickHouse插件实现数据可视化。
(1)、DBeaver示例(推荐)
- 下载并安装 DBeaver(官网:https://dbeaver.io/)。
- 新建连接:
- 连接类型选择 ClickHouse。
- 主机:ClickHouse 服务器 IP 或域名。
- 端口:9000(默认 TCP 端口)。
- 用户名:default(或自定义用户)。
- 密码:若已设置密码需填写。
3.测试连接成功后,即可通过图形界面执行 SQL、查看表结构等。
(2)、Grafana示例
1. 特点:
- 强大的数据可视化工具,支持实时监控和仪表盘。
- 可与 ClickHouse 直接集成,支持动态图表和告警。
2.使用步骤:
步骤一:安装 Grafana(以 Ubuntu 为例):
bash示例:
wget https://dl.grafana.com/oss/release/grafana_10.1.6_amd64.deb
sudo dpkg -i grafana_10.1.6_amd64.deb
sudo systemctl start grafana-server
步骤二:访问 Grafana 界面:
浏览器访问 http://<服务器IP>:3000(默认账号密码:admin/admin)。
步骤三:添加 ClickHouse 数据源:
- 点击 Configuration > Data Sources > Add data source。
- 选择 ClickHouse。
- 配置参数:
- URL: http://<ClickHouse服务器IP>:8123
- 用户名/密码:default(或其他用户)。
- 数据库:default(或目标数据库)。
步骤四:创建仪表盘:
- 通过 SQL 查询生成图表(如折线图、柱状图等)。
逆风成长,Dare To Be!!!