尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

linux环境docker-compose部署Clickhouse 集群

linux环境docker-compose部署Clickhouse 集群
📅 发布时间:2026/6/30 22:34:14

服务器配置

💻 服务器配置参考(每台)

硬件资源最小可运行开发/测试 (可用)推荐配置 (生产环境)
CPU2 核,支持 SSE 4.24 核16 核或以上
内存4 GB8 GB64 GB 或以上
磁盘20 GB SSD50 GB+ SSDNVMe SSD或高性能云盘
网络1 Gbit/s1 Gbit/s10 Gbit/s

说明:

  • 4GB 内存可以完成 ClickHouse 的安装、启动和基础功能验证,但仅限功能验证,无法承载任何数据加载或查询负载。
  • 8GB 内存可满足开发测试和小规模数据加载,但需对默认配置进行调优(降低缓存、减少并行度等)。
  • 生产环境磁盘容量需根据数据量和保留策略规划,建议内存与存储空间比例1:100 ~ 1:130。
  • 如果每台服务器运行2 个 ClickHouse 实例,内存需按实例数累加。

🦒 ZooKeeper / ClickHouse Keeper 配置参考

硬件资源最小可运行开发/测试推荐配置 (生产环境)
CPU1 核2 核4 核或以上
内存1 GB4 GB8 GB 或以上
磁盘10 GB HDD20 GB SSDNVMe SSD
实例数1 个1 个3 个

注意:如果资源充足,强烈建议将 ZooKeeper / ClickHouse Keeper 部署在独立的服务器上,与 ClickHouse 数据节点分离,避免资源竞争。

💎 总结

  • 最小可运行:4GB 内存即可安装启动,适合做功能验证和"能不能跑起来"的测试。
  • 开发/测试:8GB 内存可以执行简单查询和小规模数据加载。
  • 生产环境:建议 64GB 以上内存,具体规格需根据数据量、查询复杂度和并发量综合评估。

准备工作

每台服务器运行 2 个 ClickHouse 实例 + 1 个 ZooKeeper 节点,使用host网络模式
在每台服务器上配置host:

cat>>/etc/hosts<<EOF 192.168.50.6 server01 192.168.50.157 server02 192.168.50.110 server03 EOF

1. 整体设计

  • 服务器规划(与原文一致)

    IP主机名服务
    192.168.50.6server01ZooKeeper (myid=1), ch-main, ch-sub (副本)
    192.168.50.157server02ZooKeeper (myid=2), ch-main, ch-sub (副本)
    192.168.50.110server03ZooKeeper (myid=3), ch-main, ch-sub (副本)
  • 网络模式:全部使用host,避免端口映射和跨容器通信问题。


2. 前置准备(每台服务器)

2.1 创建目录结构

mkdir-p/usr/soft/zookeeper/{data,datalog,logs,conf}mkdir-p/usr/soft/clickhouse-server/{main,sub}/{data,conf,log}# 任何用户都能写入chmod-R777/usr/soft/clickhouse-server/main/{data,log}chmod-R777/usr/soft/clickhouse-server/sub/{data,log}

2.2 准备 ZooKeeper 配置文件

在每台服务器的/usr/soft/zookeeper/conf/zoo.cfg中写入相同内容(注意 IP 改为您实际环境):

dataDir=/data dataLogDir=/datalog tickTime=2000 initLimit=5 syncLimit=2 clientPort=2181 autopurge.snapRetainCount=3 autopurge.purgeInterval=0 maxClientCnxns=60 server.1=192.168.50.6:2888:3888 server.2=192.168.50.157:2888:3888 server.3=192.168.50.110:2888:3888

2.3 准备 ClickHouse 配置文件

(1) 获取基础配置(任选一台执行)
dockerrun--rm-d--name=temp-ch docker.1ms.run/clickhouse/clickhouse-server:26.4dockercptemp-ch:/etc/clickhouse-server/ /etc/dockerrm-ftemp-ch

然后将/etc/clickhouse-server复制到/usr/soft/clickhouse-server/main/conf和/usr/soft/clickhouse-server/sub/conf。

# 复制配置到 maincp-r/etc/clickhouse-server/* /usr/soft/clickhouse-server/main/conf/# 复制配置到 subcp-r/etc/clickhouse-server/* /usr/soft/clickhouse-server/sub/conf/# 将配置分发到 server02 和 server03或者手动复制scp-r/usr/soft/clickhouse-server/main/ server02:/usr/soft/clickhouse-server/main/scp-r/usr/soft/clickhouse-server/main/ server03:/usr/soft/clickhouse-server/main/scp-r/usr/soft/clickhouse-server/sub/ server02:/usr/soft/clickhouse-server/sub/scp-r/usr/soft/clickhouse-server/sub/ server03:/usr/soft/clickhouse-server/sub/
(2) 修改config.xml

/usr/soft/clickhouse-server/main/conf/config.xml 中添加或修改以下内容(其他保持默认):

<listen_host>0.0.0.0</listen_host><timezone>Asia/Shanghai</timezone><!-- 删除原有 <remote_servers> 节点,并添加以下配置(与 <remote_servers> 同级) --><remote_serversincl="clickhouse_remote_servers"/><include_from>/etc/clickhouse-server/metrika.xml</include_from><zookeeperincl="zookeeper-servers"optional="true"/><macrosincl="macros"optional="true"/>

默认配置中可能还有 <listen_host>::</listen_host>(IPv6)或其他 listen_host 节点。建议:只保留一个 <listen_host>0.0.0.0</listen_host>,将其他的都注释掉或删除,避免配置冲突。

  • Sub 实例需额外修改端口(避免与 Main 冲突):
    /usr/soft/clickhouse-server/sub/conf/config.xml 中除了上述修改外,还需将端口改为:
<!-- 改为未被占用的端口 --><http_port>8124</http_port><tcp_port>9001</tcp_port><mysql_port>9005</mysql_port><postgresql_port>9006</postgresql_port><interserver_http_port>9010</interserver_http_port>
(3) 创建metrika.xml

在main/conf和sub/conf中创建metrika.xml。

vi/usr/soft/clickhouse-server/main/conf/metrika.xmlvi/usr/soft/clickhouse-server/sub/conf/metrika.xml <

相关新闻

  • AI写作技巧:把你的想法翻译成AI能理解的语言
  • TVA在具身智能全栈能力体系中的关键作用(10)
  • 给宝宝起名字找哪个网站靠谱

最新新闻

  • 2026年国内口碑好的电力测功机销售厂家,究竟有哪些值得关注?
  • 2026年6月最新全球TOP5小程序商城开发工具盘点!含零代码SAAS、AI编程、源码定制
  • 如何选择跨平台文本编辑器:Notepad--的完整指南
  • 【极速入门数模电路】CMOS推挽原理、TTL/CMOS电平详解、七大基础逻辑门
  • BetterNCM安装器终极指南:3分钟解锁网易云音乐的无限可能 [特殊字符]
  • Parsec虚拟显示器终极指南:如何实现零延迟的4K游戏串流体验

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号