详解 ClickHouse 的副本机制
一、简介
副本功能只支持 MergeTree Family 的表引擎,参考文档:https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/
ClickHouse 副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机,那么也可以从其他服务器获得相同的数据。
二、原理
主要依赖 Zookeeper 来进行多个 ClickHouse 节点间数据的同步,各节点间没有主从关系

三、配置
以 3 台虚拟机节点集群为例
-
在集群的一台节点 hadoop102 上修改配置文件
#1. 使用外部文件进行配置 su root cd /etc/clickhouse-server/config.d vim metrika.xml#添加zookeeper信息 <?xml version="1.0"?> <yandex><zookeeper-servers><node index="1"><host>hadoop102</host><port>2181</port></node><node index="2"><host>hadoop103</host><port>2181</port></node><node index="3"><host>hadoop104</host><port>2181</port></node></zookeeper-servers> </yandex>#修改metrika.xml文件的所属用户及组 chown clickhouse:clickhouse metrika.xmlcd /etc/clickhouse-server vim config.xml#查找zookeeper位置,添加配置 <zookeeper incl="zookeeper-servers" optional="true" /> <include_from>/etc/clickhouse-server/config.d/metrika.xml</include_from>#2. 直接在 config.xml 中进行配置 su root cd /etc/clickhouse-server vim config.xml#查找zookeeper位置,去掉<zookeeper></zookeeper>的注释并修改 <zookeeper><node><host>hadoop102</host><port>2181</port></node><node><host>hadoop103</host><port>2181</port></node><node><host>hadoop104</host><port>2181</port></node> </zookeeper> -
同步配置文件到其他节点
/etc/clickhouse-server/config.d/metrika.xml /etc/clickhouse-server/config.xml -
启动 zookeeper 集群服务
-
分别在 clickhouse 对应的节点启动服务
sudo clickhouse start
四、使用
-
在集群一台节点 hadoop102 上进入 clickhouse 客户端并创建表
create table t_order_rep2 (id UInt32,sku_id String,total_amount Decimal(16,2),create_time Datetime ) engine=ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_102') partition by toYYYYMMDD(create_time) primary key (id) order by (id,sku_id);--ReplicatedMergeTree中的参数说明: --1. '/clickhouse/table/01/t_order_rep':指定表的分片在 zookeeper 中的地址,一般按照 /clickhouse/table/{shard}/{table_name} 的格式,只有一个分片就写 01--2. 'rep_102':指定副本名称,相同的分片副本名称不能相同 -
在集群另一台节点 hadoop103 上进入 clickhouse 客户端并创建表
create table t_order_rep2 (id UInt32,sku_id String,total_amount Decimal(16,2),create_time Datetime ) engine=ReplicatedMergeTree('/clickhouse/table/01/t_order_rep','rep_103') partition by toYYYYMMDD(create_time) primary key (id) order by (id,sku_id); -
在 hadoop102 上向表中插入数据
insert into t_order_rep2 values (101,'sku_001',1000.00,'2020-06-01 12:00:00'), (102,'sku_002',2000.00,'2020-06-01 12:00:00'), (103,'sku_004',2500.00,'2020-06-01 12:00:00'), (104,'sku_002',2000.00,'2020-06-01 12:00:00'), (105,'sku_003',600.00,'2020-06-02 12:00:00'); -
在 hadoop103 上查询表中数据,能正确返回则表示副本配置成功
select * from t_order_rep2;
相关文章:
详解 ClickHouse 的副本机制
一、简介 副本功能只支持 MergeTree Family 的表引擎,参考文档:https://clickhouse.tech/docs/en/engines/table-engines/mergetree-family/replication/ ClickHouse 副本的目的主要是保障数据的高可用性,即使一台 ClickHouse 节点宕机&#…...
速卖通测评成本低见效快,自养号测评的实操指南,快速积累销量和好评
对于初入速卖通的新卖家而言,销量和评价的积累显得尤为关键。由于新店铺往往难以获得平台活动的青睐,因此流量的获取成为了一大挑战。在这样的背景下,进行产品测评以积累正面的用户反馈和销售记录,成为了提升店铺信誉和吸引潜在顾…...
php反序列化漏洞简介
目录 php序列化和反序列化简介 序列化 反序列化 类中定义的属性 序列化实例 反序列化实例 反序列化漏洞 序列化返回的字符串格式 魔术方法和反序列化利用 绕过wakeup 靶场实战 修复方法 php序列化和反序列化简介 序列化 将对象状态转换为可保持或可传输的格式的…...
力扣随机一题 模拟+字符串
博客主页:誓则盟约系列专栏:IT竞赛 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 1910.删除一个字符串中所有出现的给定子字符串【中等】 题目: …...
java-正则表达式 1
Java中的正则表达式 1. 正则表达式的基本概念 正则表达式(Regular Expression, regex)是一种用于匹配字符串中字符组合的模式。正则表达式广泛应用于字符串搜索、替换和解析。Java通过java.util.regex包提供了对正则表达式的支持,该包包含两…...
Python xlrd库:读excel表格
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…...
开发中遇到的一个bug
遇到的报错信息是这样的: java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [hm-api,hm-common,hm-service] are excluded from annotation processing 翻译过来就是存在循环引用的情况,导…...
Java面试题:对比不同的垃圾收集器(如Serial、Parallel、CMS、G1)及其适用场景
Java虚拟机(JVM)提供了多种垃圾收集器,每种垃圾收集器在性能和适用场景上各有不同。以下是对几种常见垃圾收集器(Serial、Parallel、CMS、G1)的对比及其适用场景的详细介绍: 1. Serial 垃圾收集器 Serial…...
每日一题——冒泡排序
C语言——冒泡排序 冒泡排序练习 前言:CSDN的小伙伴们,大家好!今天我来给大家分享一种解题思想——冒泡排序。 冒泡排序 冒泡法的核心思想:两两相邻的元素进行比较 2.冒泡排序的算法描述如下。 (1)比较相邻的元素。如果第一 个比…...
javascript浏览器对象模型
BOM对象: BOM 是浏览器对象模型的简称。JavaScript 将整个浏览器窗口按照实现的功能不同拆分成若干个对象; 包含:window 对象、history 对象、location 对象和 document 对象等 window对象: 常用方法: 1.prompt();…...
C语言之链表以及单链表的实现
一:链表的引入 1:从数组的缺陷说起 (1)数组有两个缺陷。一个是数组中所有元素类型必须一致,第二是数组的元素个数必须事先指定并且一旦指定后不能更改 (2)如何解决数组的两个缺陷:数…...
AI在线免费视频工具2:视频配声音;图片说话hedra
1、视频配声音 https://deepmind.google/discover/blog/generating-audio-for-video/ https://www.videotosoundeffects.com/ (免费在线使用) 2、图片说话在线图片生成播报hedra hedra 上传音频与图片即可合成 https://www.hedra.com/ https://www.…...
Elastic字段映射(_source,doc_value,fileddata,index,store)
Elastic字段映射(_source,doc_value,filed_data,index,store) _source: source 字段用于存储 post 到 ES 的原始 json 文档。为什么要存储原始文档呢?因为 ES 采用倒排索引对文本进行搜索,而倒排索引无法存储原始输入…...
kotlin空类型安全 !! ?. ?:
1、定义可空类型 fun main(){// 定义可空类型var x:String? "hello"x null } 2、!! 强转类型 定义可空类型之后,如果使用其内置方法,编译不会通过,因为值有可能为null,可以使用 !! 把类型强转为不可空:…...
通过 WireGuard 组建虚拟局域网 实现多个局域网全互联
本文后半部分代码框较多,欢迎点击原文链接获得更佳的阅读体验。 前言 上一篇关于 WireGuard 的文章通过 Docker 安装 wg-easy 的形式来使用 WireGuard,但 wg-easy 的功能比较有限,并不能发挥出 WireGuard 的全部功力。 如果只是想要出门在外连随时随地的连回家里的局域网,…...
qmt量化交易策略小白学习笔记第47期【qmt编程之期货仓单】
qmt编程之获取期货数据 qmt更加详细的教程方法,会持续慢慢梳理。 也可找寻博主的历史文章,搜索关键词查看解决方案 ! 感谢关注,咨询免费开通量化回测与获取实盘权限,欢迎和博主联系! 期货仓单 提示 1…...
点云处理中阶 Sampling
目录 一、什么是点云Sampling 二、示例代码 1、下采样 Downsampling 2、均匀采样 3、上采样 4、表面重建 一、什么是点云Sampling 点云处理中的采样(sampling)是指从大量点云数据中选取一部分代表性的数据点,以减少计算复杂度和内存使用,同时保留点云的几何特征和重…...
为什么print语句被Python3遗弃?
在开发和维护python项目的时候发现经常有print语句报错,原因是python3放弃了print语句 print 语句 早就被列在了不可靠的语言特性列表中,例如 Guido 的“Python 之悔”(Python Regrets)演讲【1】,并计划在 Python 300…...
067、Python 高阶函数的编写:优质冒泡排序
以下写了个简单的冒泡排序函数: def bubble_sort(items: list) -> list:for i in range(1, len(items)):swapped Falsefor j in range(0, len(items) - 1):if items[j] > items[j 1]:items[j], items[j 1] items[j 1], items[j]swapped Trueif not swa…...
【Python】从基础到进阶(一):了解Python语言基础以及变量的相关知识
🔥 个人主页:空白诗 文章目录 引言一、Python简介1.1 历史背景1.2 设计哲学1.3 语言特性1.4 应用场景1.5 为什么选择Python 二、Python语言基础2.1 注释规则2.1.1 单行注释2.1.2 多行注释2.1.3 文件编码声明注释 2.2 代码缩进2.3 编码规范2.3.1 命名规范…...
硬件安全漏洞披露与静态侧信道攻击防御实践
1. 漏洞披露流程与行业实践在硬件安全研究领域,负责任披露(Responsible Disclosure)是研究人员发现关键漏洞后的标准操作流程。以我们团队发现的AMD和Microchip芯片漏洞为例,完整披露过程通常包含以下关键阶段:漏洞确认…...
【教育研究者的AI外脑】:NotebookLM如何72小时内重构文献综述工作流?
更多请点击: https://codechina.net 第一章:【教育研究者的AI外脑】:NotebookLM如何72小时内重构文献综述工作流? 教育研究者长期面临文献爆炸与认知过载的双重压力:平均每位博士生需精读300篇中英文文献,…...
7B秒杀70B!大模型微调秘籍全解:从理论到实战,玩转高效适配!
本文系统介绍了大模型微调的理论框架与实践流程。阐述了微调的必要性,即弥补通用大模型在领域知识、输出格式及行为对齐上的不足,并说明微调效果可超越更大参数的未微调模型。文章深入解析了微调原理,对比了全参数微调与高效微调(…...
西安给孩子配镜哪个公司口碑好
如果在西安想给孩子配镜,甲目眼镜(成都)有限公司是个不错的选择。甲目眼镜聚焦中高端写字楼白领与商务人群,同时也为孩子配镜提供优质服务。它以“高性价比的高端眼镜”为使命,严选国内外一线品牌,重塑了品…...
通过用量看板与账单追溯实现团队 AI 成本精细化管理
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过用量看板与账单追溯实现团队 AI 成本精细化管理 对于技术团队而言,将大模型能力集成到产品与研发流程中已成为常态…...
3篇6章5节:基于 stat_slab () 函数的高血压临床数据可视化
在现代医学研究,传统 “均值 标准差”“箱线图” 等统计表达,往往会丢失数据的分布形态、双峰特征、组间重叠等关键信息,无法适配真实世界临床数据的复杂特征。而 R 语言 ggdist 包的 stat_slab() 函数,作为分布可视化体系的核心底层工具,不仅能实现样本数据的完整分布呈…...
零基础玩转Linux:CentOS安装、Xshell连接与文件权限全攻略
零基础玩转Linux:CentOS安装、Xshell连接与文件权限全攻略 目录 1、Linux系统简介 2、安装Linux 3、Linux相关配制 3.1 配制静态IP 3.2 安装Linux终端 3.3 安装ftp 3.4、Linux目录结构 4、Linux基本命令 4.1、关机与重启 4.2、文件与目录 4.3、日期与日历 4.4、帮助指令 4.5、…...
[具身智能-791]:NAV2 全局规划层 A*算法的本质是距离最短,而不是时间最短算法
核心定论A 算法本质:优先求解几何物理距离最短路径,天生不是「通行耗时最短」算法*一、直白区分A 追求目标*以栅格空间长度为核心权重,算出纯路程最短的路线,只看走了多少米,不看好不好走、堵不堵、快慢如何。时间最短…...
OpenClaw Zero Token 实测:不用 API Key,也能免费聚合多家 AI 模型
OpenClaw Zero Token 实测:不用 API Key,也能免费聚合多家 AI 模型 如果你经常在 Claude、ChatGPT、Gemini、DeepSeek、豆包、Kimi、Grok、通义千问之间来回切换,大概率会遇到一个问题: 每个平台都有自己的网页入口,…...
锂离子动力电池机理建模与系统状态评估【附代码】
✨ 长期致力于新能源汽车、动力电池系统、状态监测与评估、Matlab/Simulink研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (1)全阶电化学-热耦合模型的有…...
