当前位置: 首页 > news >正文

中间件--ClickHouse-11--部署示例(Linux宿主机部署,Docker容器部署)

一、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 接口
  1. 默认情况下,ClickHouse 提供 HTTP 接口,默认端口为 8123。
  2. 测试接口是否可用:
    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接口
  1. 默认情况下,ClickHouse 提供 HTTP 接口,默认端口为 8123。
  2. 测试接口是否可用:
    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示例(推荐)
  1. 下载并安装 DBeaver(官网:https://dbeaver.io/)。
  2. 新建连接:
    • 连接类型选择 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!!!

相关文章:

  • 研一自救指南 - 07. CSS面向面试学习
  • MySQL如何实现行行比较
  • php多种方法实现xss过滤
  • 工厂模式具体应用在什么场景?
  • End-to-End从混沌到秩序:基于LLM的Pipeline将非结构化数据转化为知识图谱
  • 【计算机视觉】三维视觉项目 - Colmap二维图像重建三维场景
  • 第二模块·语法迁移篇 —— 第七章 指针的消亡与引用的新生:从内存操作到对象访问的革命
  • 商标起名换了暗示词,通过初审!
  • Linux系统中的网络管理
  • SQL系列:常用函数
  • 每日OJ_牛客_最小差值_排序_C++_Java
  • ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(显示输出类外设之LCD)
  • 深入理解前端安全:CSRF与XSS攻击详解
  • 在小米AX6000中通过米家控制tailscale
  • 使用ref和refs获取DOM元素和组件方法,使用$nextTick解决Vue异步更新的逻辑下无法获取DOM的问题
  • 力扣面试150题-- 存在重复元素 II和最长连续序列
  • 系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)案例分析与简答题、详细解析与评分要点
  • 中间件--ClickHouse-12--案例-1-日志分析和监控
  • 如何0基础学stm32?
  • redis和lua为什么能实现事务
  • 女子遭前男友泼汽油烧伤致残案二审庭审:检方抗诉称一审量刑不当
  • 上海市政府常务会议部署多措并举促进消费,提高居民收入,减轻家庭负担
  • 泽连斯基:俄军违反停火承诺,20日10时起前线俄炮击增加
  • 马拉松夺冠机器人将小批量量产:价格与一台入门级小轿车差不多
  • 两名中国公民在墨尔本被海浪卷走,我领馆发文提醒
  • 碎片化时代如何阅读?巴金图书馆推出世界读书日系列活动