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

ClickHouse 3节点集群配置与分布式表实战指南

1. ClickHouse集群基础概念解析第一次接触ClickHouse集群时我被各种术语绕得头晕——分片、副本、分布式表、本地表这些概念到底有什么区别后来在实际项目中踩过几次坑才真正理解它们的含义。简单来说**分片Shard就像把一本书拆成几个章节分别放在不同书架上而副本Replica**则是给每个章节做了几份复印件放在不同位置。这种设计让ClickHouse既能横向扩展存储容量又能通过数据冗余保证高可用。ClickHouse Keeper是集群的大脑负责协调各节点工作。它完全兼容ZooKeeper协议但资源占用更少。我去年做过对比测试在相同数据量下ClickHouse Keeper的内存消耗只有ZooKeeper的60%左右。三节点配置能确保即使一台机器宕机集群仍能正常运作——这就是所谓的**法定人数Quorum**机制。分布式表是个虚拟概念它不存储实际数据而是作为查询路由器。当你在分布式表执行SELECT时它会自动将查询分发到所有分片合并结果后返回。而本地表才是真实存储数据的实体。这种设计类似MySQL的分库分表中间件但性能要好得多实测查询速度比同类方案快3-5倍。2. 三节点集群环境准备我推荐使用Ubuntu 22.04系统这个版本对ClickHouse的兼容性最好。硬件配置方面测试环境用2核4GB内存就够但生产环境建议至少4核16GB。去年我们有个客户用2核机器跑生产环境数据量上去后频繁OOM后来升级配置才解决。三台机器的角色分配很关键chnode1ClickHouse Server Keeperserver_id1chnode2ClickHouse Server Keeperserver_id2chnode3专用Keeper节点server_id3先在所有节点配置主机名解析# 三台机器都要执行 hostnamectl set-hostname chnodeX # X替换为1/2/3 cat /etc/hosts EOF 192.168.72.51 chnode1 192.168.72.52 chnode2 192.168.72.53 chnode3 EOF安装依赖时有个小技巧——先更新APT源缓存sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates dirmngr3. 集群安装与核心配置chnode1和chnode2需要安装完整服务sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 8919F6BD2B48D754 echo deb https://packages.clickhouse.com/deb stable main | sudo tee /etc/apt/sources.list.d/clickhouse.list sudo apt-get update sudo apt-get install -y clickhouse-server clickhouse-clientchnode3只需安装Keepersudo apt-get install -y clickhouse-keeper mkdir -p /var/lib/clickhouse-keeper/coordination/{log,snapshots}关键配置文件解析network-and-logging.xml所有节点clickhouse logger leveldebug/level log/var/log/clickhouse-server/clickhouse-server.log/log size1000M/size count3/count /logger listen_host0.0.0.0/listen_host http_port8123/http_port tcp_port9000/tcp_port /clickhouseenable-keeper.xml注意server_id差异!-- chnode1配置 -- keeper_server server_id1/server_id raft_configuration serverid1/idhostnamechnode1/hostname/server !-- 其他节点配置... -- /raft_configuration /keeper_serverMacros.xml分片配置!-- chnode1 -- macros shard1/shard replicareplica_1/replica /macros !-- chnode2 -- macros shard2/shard replicareplica_1/replica /macros4. 分布式表实战操作启动服务后先用这个命令检查Keeper状态echo mntr | nc localhost 9181 # 正常会返回zk_server_state leader/follower创建测试数据库注意ON CLUSTER语法CREATE DATABASE test_db ON CLUSTER cluster_2S_1R本地表要用ReplicatedMergeTree引擎CREATE TABLE test_db.local_table ON CLUSTER cluster_2S_1R ( id UInt64, create_time DateTime, data String ) ENGINE ReplicatedMergeTree() ORDER BY id分布式表配置技巧CREATE TABLE test_db.dist_table ON CLUSTER cluster_2S_1R AS test_db.local_table ENGINE Distributed(cluster_2S_1R, test_db, local_table, rand())数据操作验证-- 插入数据到分布式表 INSERT INTO test_db.dist_table VALUES (1, now(), Alice), (2, now(), Bob); -- 查询单个分片 SELECT * FROM test_db.local_table; -- 查询全部数据 SELECT * FROM test_db.dist_table;5. 性能调优与故障排查遇到过最头疼的问题是副本不同步。后来发现是Keeper节点时钟不同步导致解决方法# 所有节点执行 sudo timedatectl set-ntp true常见错误处理端口冲突检查9000/tcp和9181/tcp端口占用副本丢失在system.replicas表查看同步状态查询卡死设置max_memory_usage参数限制单查询内存性能优化建议!-- config.xml添加 -- max_memory_usage10000000000/max_memory_usage distributed_ddl_task_timeout300/distributed_ddl_task_timeout监控方案推荐PrometheusGranafa重点监控分片查询耗时副本延迟时间Keeper节点状态6. 生产环境注意事项去年有个金融客户在凌晨切换时踩了坑分享几点经验数据迁移先用clickhouse-copier工具做全量同步灰度发布逐个节点滚动重启监控query_log备份策略配置S3存储做增量备份容量规划参考值单分片建议不超过5TB原始数据每个Keeper节点至少16GB内存预留30%的磁盘空间给合并操作安全加固措施!-- users.xml配置 -- password_sha256_hex.../password_sha256_hex networks ip10.0.0.0/8/ip /networks

相关文章:

ClickHouse 3节点集群配置与分布式表实战指南

1. ClickHouse集群基础概念解析 第一次接触ClickHouse集群时,我被各种术语绕得头晕——分片、副本、分布式表、本地表,这些概念到底有什么区别?后来在实际项目中踩过几次坑才真正理解它们的含义。简单来说,**分片(Shar…...

企业网络改造不求人:手把手教你深信服防火墙旁挂部署(含NQA配置避坑指南)

企业级防火墙旁挂部署实战:深信服设备零基础配置指南 当企业网络规模逐步扩大,业务系统日益复杂,网络安全防护往往成为IT运维团队最头疼的问题之一。传统防火墙部署通常需要对现有网络架构进行大规模调整,不仅实施周期长&#xff…...

OpenClaw隐私保护:百川2-13B本地化部署下的数据全生命周期管理

OpenClaw隐私保护:百川2-13B本地化部署下的数据全生命周期管理 1. 为什么需要关注OpenClaw的隐私保护? 去年我在整理公司财报时,曾不小心把包含敏感数据的Excel表格上传到了公有云AI助手的聊天窗口。虽然及时删除了记录,但那种&…...

Markdown全能助手:OpenClaw+GLM-4.7-Flash文档处理流水线

Markdown全能助手:OpenClawGLM-4.7-Flash文档处理流水线 1. 为什么需要自动化文档流水线 去年参与一个开源项目时,我每天要花3小时处理技术文档——从收集issue反馈到整理API变更,最后生成更新日志。最痛苦的是手动调整Markdown格式&#x…...

保姆级教程:用Python+ROS从零实现IMU/GPS组合导航(附源码避坑)

从零搭建IMU/GPS组合导航系统:Python与ROS实战指南 在机器人导航领域,单纯依赖GPS或IMU都存在明显缺陷——GPS信号易受遮挡影响,而IMU存在累积误差。将两者数据融合的组合导航技术,正成为自动驾驶小车、无人机和移动机器人的标配方…...

OpenClaw问题诊断:Qwen3.5-4B-Claude模型执行失败常见原因分析

OpenClaw问题诊断:Qwen3.5-4B-Claude模型执行失败常见原因分析 1. 问题背景与诊断思路 上周在尝试用OpenClaw自动化处理技术文档时,遇到了模型执行中断的问题。当时任务卡在"分析Markdown文档结构"环节,控制台只留下一行模糊的错…...

解决MathType在Word中加载失败的终极指南:从运行时错误53到MathPage.WLL缺失

1. 遇到MathType加载失败时先别慌 最近有不少朋友在系统升级后遇到了MathType无法正常加载的问题。作为一个经常和公式打交道的科研狗,我完全理解这种崩溃感——论文deadline近在眼前,公式编辑器却罢工了。最常见的两种报错是:"Please r…...

认知雷达基础概念与核心理念总结

一、认知雷达的基础概念与核心理念认知雷达是一种全新的雷达技术范式,由 Haykin 和 Guerci 提出,借鉴了与知识相关的心理能力和认知过程的特性,核心理念是通过发射机与接收机之间持续且协调的反馈,让传感器算法根据实际运行环境和…...

AI元人文构想:从自感养护到伦理中间件——一种智能时代的人文回应

AI元人文构想:从自感养护到伦理中间件——一种智能时代的人文回应---引言:技术时代的人文焦虑智能算法的深度嵌入,正在重塑人类感知、判断与意义生成的方式。推荐系统预判我们的欲望,社交平台定义我们的关系,大语言模型…...

OpenClaw安全加固实践:Qwen3-32B私有镜像+本地防火墙配置

OpenClaw安全加固实践:Qwen3-32B私有镜像本地防火墙配置 1. 为什么需要安全加固? 当我第一次看到OpenClaw能够自动操作我的电脑时,既兴奋又担忧。兴奋的是它能够帮我完成重复性工作,担忧的是它本质上是一个拥有系统操作权限的AI…...

CANoe CAPL实战:putvalue和getvalue函数在汽车总线测试中的高效应用

CANoe CAPL实战:putvalue和getvalue函数在汽车总线测试中的高效应用 在汽车电子测试领域,CANoe作为主流的测试工具,其CAPL编程语言的高效运用直接决定了测试效率和质量。对于经常与CAN总线打交道的测试工程师来说,putvalue和getva…...

解锁Unity游戏扩展:BepInEx插件框架的5个核心应用步骤

解锁Unity游戏扩展:BepInEx插件框架的5个核心应用步骤 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx作为Unity游戏的插件框架,为玩家和开发者提供…...

PLC控制柜布线秘籍:12/24V传感器供电距离与线径选择全解析

PLC控制柜布线秘籍:12/24V传感器供电距离与线径选择全解析 工业现场最让人头疼的往往不是复杂的控制逻辑,而是那些看似简单的传感器突然"罢工"。上周刚处理完一个案例:某包装产线的光电传感器在设备重启后集体失灵,排查…...

专业硬件监控解决方案:LibreHardwareMonitor完全指南

专业硬件监控解决方案:LibreHardwareMonitor完全指南 【免费下载链接】LibreHardwareMonitor Libre Hardware Monitor, home of the fork of Open Hardware Monitor 项目地址: https://gitcode.com/GitHub_Trending/li/LibreHardwareMonitor 在当今数字化时代…...

政务金融AI获客合规难?矩阵跃动小陌GEO私有化部署,兼顾安全与效率

在数字经济与人工智能深度融合的2026年,AI已成为政务金融领域数字化转型的核心驱动力,尤其在获客场景中,AI技术能够实现精准触达、高效转化,大幅降低传统获客模式的人力与时间成本。但政务金融领域的特殊性的决定了其AI应用不能单…...

从原理到实战:深入解析Google Diff-Match-Patch的跨语言文本差异算法

1. 认识Google Diff-Match-Patch:文本差异处理的瑞士军刀 第一次接触文本差异比对需求是在开发一个在线协作编辑器时。当时用户抱怨版本对比功能总是显示整段文本变化,而他们只想看到具体修改了哪些单词。试过几个方案后,Google的diff-match-…...

OpenClaw+GLM-4-7-Flash科研助手:自动整理文献与生成综述

OpenClawGLM-4-7-Flash科研助手:自动整理文献与生成综述 1. 为什么需要自动化科研助手 作为一名经常需要阅读大量文献的研究者,我发现自己花费在文献整理上的时间越来越多。每次打开文件夹看到几十篇PDF文献时,那种"从哪里开始"的…...

AI优化效果不可控?矩阵跃动数据驱动型龙虾机器人,实现搜索排名稳定提升

在AI技术深度渗透搜索优化、流量运营等领域的今天,开发者与企业团队普遍面临一个核心困境:AI优化效果飘忽不定,搜索排名波动剧烈、结果不可复现、异常波动无预警,看似高效的自动化优化,反而成为业务稳定推进的潜在隐患…...

用Python+OpenCV实现双目视觉三维重建:从相机标定到triangulatePoints实战

PythonOpenCV双目视觉三维重建实战:从标定到点云生成 去年在开发一个AR眼镜原型时,我遇到了一个棘手的问题:如何让设备准确感知周围环境的深度。经过反复尝试,最终采用双目视觉方案完美解决了这个问题。本文将分享整个实现过程&am…...

VSCode + Clang-Format 真·无缝集成指南:不止是保存时格式化

VSCode Clang-Format 真无缝集成指南:不止是保存时格式化 在C/C开发中,代码风格一致性往往成为团队协作的痛点。当你在深夜提交代码时,是否曾被同事提醒"缩进不对"或"括号换行风格不一致"?Clang-Format作为L…...

复现瓦斯抽采钻孔间距优化的二维数值模拟研究模型

复现论文《瓦斯抽采钻孔间距优化三维数值模拟量化研究》模型 模型为二维 不是论文的三维图 钻孔间距优化的数学建模手记 最近在复现某篇瓦斯抽采钻孔优化的论文时,发现原论文的三维模型对计算资源要求太高。为了快速验证核心结论,我决定将模型简化到二维…...

HarmonyOS 6实战:Router与Navigation混合路由的转场实战

一、问题现象与影响在HarmonyOS 6应用开发中,随着应用复杂度提升,开发者常常需要混合使用ArkUI的Router(页面级路由)和Navigation(容器级导航)两种导航机制。然而,当从基于Router的页面跳转到Na…...

Qwen3-VL-8B快速原型开发:基于Typora风格输入实时生成图文并茂的技术文档

Qwen3-VL-8B快速原型开发:基于Typora风格输入实时生成图文并茂的技术文档 不知道你有没有过这样的经历:写一份技术方案或者产品文档,脑子里想法很多,但落到纸上就变得干巴巴的,总觉得缺几张图来说明,或者文…...

如何高效将LocalSend打包为MSIX:完整Windows商店发布实战指南

如何高效将LocalSend打包为MSIX:完整Windows商店发布实战指南 【免费下载链接】localsend localsend - 一个开源应用程序,允许用户在本地网络中安全地共享文件和消息,无需互联网连接,适合需要离线文件传输和通信的开发人员。 项…...

百川2-13B驱动OpenClaw智能客服:电商售后场景的自动化响应实战

百川2-13B驱动OpenClaw智能客服:电商售后场景的自动化响应实战 1. 为什么选择OpenClaw搭建轻量级客服系统 去年双十一期间,我运营的小型电商店铺遭遇了售后咨询暴增的问题。临时雇佣的客服人员不熟悉产品细节,导致大量重复问题需要反复解答…...

基于STM32定时器外部触发模式的高精度频率计实现

1. 为什么需要高精度频率计 在嵌入式开发中,频率测量是个常见但棘手的问题。我遇到过不少开发者,他们用普通IO口配合中断来计数,结果发现测量1MHz以上的信号时误差大得离谱。后来改用STM32的定时器外部触发模式,精度直接提升了一个…...

5分钟搞定COCO数据集下载与配置:从官网到百度云全攻略(附多线程加速技巧)

COCO数据集极速获取指南:从官方源到镜像站的全链路方案 刚接触计算机视觉的新手们,往往在第一步获取数据集时就遭遇"劝退"——动辄几十GB的COCO数据集,官网下载速度堪比蜗牛爬行,百度云限速让人抓狂。本文将分享一套经过…...

OpenClaw团队协作版:ollama-QwQ-32B支持多用户任务隔离实践

OpenClaw团队协作版:ollama-QwQ-32B支持多用户任务隔离实践 1. 为什么我们需要团队协作版的OpenClaw 去年我带领一个5人内容团队时,遇到了一个典型问题:每个人都想用AI自动化处理日常工作,但共享同一套系统会导致文件混乱、任务…...

别再只盯着蓝牙和ZigBee了!用Telink TLSR8258芯片的2.4G私有协议,自己动手做个低功耗遥控器

从零构建2.4G私有协议遥控器:Telink TLSR8258实战指南 当市面上大多数IoT设备还在蓝牙和ZigBee的框架下挣扎时,Telink TLSR8258芯片的2.4G私有协议正在悄然改写低功耗无线通信的规则。我曾在一个智能农业项目中,需要控制200米外的灌溉阀门&am…...

AI 辅助开发实战:构建高可用毕设深度学习系统的工程化路径

最近在帮学弟学妹们看毕业设计,发现一个挺普遍的现象:很多同学算法思路不错,但一到工程实现就各种“翻车”。环境配一天跑不起来,模型调参全靠手动“玄学”,好不容易训出来的模型,不知道怎么部署给别人用。…...