技术分享 | ClickHouse-Keeper 初探

Clickhouse keeper方式搭建集群(不再依赖zookeeper) clickhouse不依赖zk部署集群 阅读详情

作者:陈宇

现任爱可生南区项目经理,负责项目整体质量、安全、进度、成本管理的责任保证体系。对开源技术执着,为客户负责,喜欢极限运动,足球。

本文来源:原创投稿

*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。


一、ClickHouse-Keeper 是什么:

ClickHouse 社区在 21.8 版本中开始引入了 ClickHouse-Keeper ,直至 ClickHouse 21.12 发布公告提到 ClickHouse Keeper 功能基本完成。

ClickHouse Keeper 是 ZooKeeper 的替代品,与 ZooKeeper 不同,ClickHouse Keeper 是用 C++ 编写的,并使用 RAFT 算法实现,该算法允许对读写具有线性化能力,具有多种不同语言的开源实现。

二、Zookeeper与ClickHouse-Keeper一些场景对比

为什么要引入 ClickHouse-Keeper 呢?主要是 ClickHouse 使用 Zookeeper 有着众多痛点:

  • 使用java开发
  • 运维不便
  • 要求独立部署
  • zxid overflow 问题
  • snapshot 和 log 没有经过压缩
  • 不支持读的线性一致性

而 ClickHouse-Keeper 存在着以下优点:

  • 使用 C++ 开发,技术栈与 ClickHouse 统一
  • 即可独立部署,又可集成到 ClickHouse 中
  • 没有 zxid overflow 问题
  • 读性能更好,写性能相当
  • 支持对 snapshot 和 log 的压缩和校验
  • 支持读写的线性一致性

三、配置方式

相较之前的集群配置,没有太大区别,而 ClickHouse-Keeper 仅当<keeper_server>标签存在于配置中时才会运行,配置模板如下:

四、启动命令

clickhouse-keeper --config /etc/your_path_to_config/config.xml

五、参数说明

  • tcp_port:客户端连接的端口(ZooKeeper 的默认值为2181)
  • tcp_port_secure:用于客户端和 keeper-server 之间 SSL 连接的安全端口
  • server_id:Keeper集群的每个节点唯一ID
  • log_storage_path:日志路径,最好将日志存储在IO性能强设备
  • snapshot_storage_path:快照路径

<keeper_server>.<coordination_settings>部分

  • operation_timeout_ms:单个客户端操作超时配置
  • min_session_timeout_ms:客户端会话最小超时
  • session_timeout_ms:客户端会话的最大超时
  • dead_session_check_period_ms:检查过期会话并将其删除的频率
  • heart_beat_interval_ms:leader 向 follower 发送心跳的频率
  • election_timeout_lower_bound_ms:如果 follower 在此时间间隔内没有收到 leader 的心跳,则可以发起 leader 选举
  • rotate_log_storage_interval:在单个文件中存储多少日志记录
  • reserved_log_items:压缩前要存储多少日志记录
  • snapshot_distance:创建快照的频率
  • snapshots_to_keep:快照保留份数
  • max_requests_batch_size:在将请求发送到 RAFT 之前,请求中的最大批处理请求大小
  • raft_logs_level:raft日志记录级别
  • auto_forwarding:允许将follower的写请求转发给leader
  • shutdown_timeout:等待完成内部连接并关闭的时间

<keeper_server>.<raft_configuration>部分

  • Id:集群的每个节点ID
  • Hostname:服务器的主机名
  • Port:服务器监听端口

六、状态检查

6.1、ruok 主要用于诊断 Keeper 的客户端/服务器

命令如下:

echo ruok | nc 127.0.0.1 9181

成功则返回 imok

6.2、确保 ClickHouse-Server 知道 keeper 集群,我们可以查询 system.zookeeper 表

注:输出以上信息代表安装成功

七、如何迁移 Zookeeper 至ClicHouse-Keeper

既然 ClickHouse-Keeper 优势这么明显,那么如何将 Zookeeper 中的数据迁移到 ClickHouse-Keeper 中呢?官方提供了迁移工具 ClickHouse-Keeper-Converter, 它能够将 Zookeeper 中的数据 dump 成 ClicHouse-Keeper 能够加载的 snapshot 。

迁移步骤如下

  • 停止所有 Zookeeper 节点
  • 找到 Zookeeper-leader 节点并再次停止(这一步是为了让 leader 节点生成一份 snapshot )
  • 运行 ClickHouse-Keeper-Converter ,生成 Keeper 的 snapshot 文件

命令参考:

clickhouse-keeper-converter --zookeeper-logs-dir /var/lib/zookeeper/version-2 --zookeeper-snapshots-dir /var/lib/zookeeper/version-2 --output-dir /path/to/clickhouse/keeper/snapshots
  • 启动 ClickHouse-Keeper ,使其加载上一步中的 snapshot

参考文献:https://clickhouse.com/docs/en/operations/clickhouse-keeper/

如何排查clickhouse的使用过程中zookeeper出现的问题 clickhouse中遇到的关于zookeeper的问题 阅读详情

相关推荐

ClickHouse客户端连接全攻略:除了DBeaver还有哪些好用的工具?

本文全面评测了ClickHouse客户端连接工具,从原生命令行工具到企业级可视化平台,涵盖了DBeaver、Tabix、DataGrip等多种方案。详细解析了各工具的核心优势、配置方法和适用场景,帮助用户在不同环境下选择最优连接方案,提升数据查询和管理效率。

weixin_30555125的博客 136

clickhouse-keeper简介及使用

ClickHouse Keeper 是 ZooKeeper 的替代品,与 ZooKeeper 不同,ClickHouse Keeper 是用 C++ 编写的,并使用 RAFT 算法实现,相比zookeeper有更好的性能,Zookeeper 运维复杂,需要独立部署组件,之前出问题比较多。HouseKeeper 部署形态比较多,可以 standalone 模式和集成模式。

robinhunan的博客 6201

【clickhouse】clickhouse的系统表

1.概述 转载:clickhouse的系统表 在日常使用clickhouse中经常会遇到很多问题,有时候需要去查系统表,但是对于我们来说,大部分的系统表的字段名称都不知道,看到了也不知道啥意思,下面我就整理一下clickhouse系统表的字段注释。 2.系统表 系统表用于实现系统的部分功能,并提供对有关系统如何工作的信息的访问。 不能删除系统表(但可以执行DETACH)。 系统表在磁盘上没有数据或元数据的文件。服务器在启动时创建所有系统表。 系统表是只读的。 它们位于 ‘system’ 数据库中。 2.1.

九师兄 4239

基于clickhouse keeper搭建clickhouse集群

集群搭建参考:https://clickhouse.com/docs/en/guides/sre/keeper/clickhouse-keeper#clickhouse-keeper-user-guide。不支持ipv6参考:https://github.com/ClickHouse/ClickHouse/issues/33381。使用建议:https://clickhouse.com/docs/en/operations/tips。:默认16,可以调整到CPU个数的两倍。配置如下(将该配置追加到。

wlj15059332248的博客 4913

stm32f103c8t6的中文字库

stm32的成熟中文字库,上手即用,操作简单

nbbskk的博客 3653

Ubuntu下为RK3568开发板搭建Qt交叉编译环境:手把手教你配置Qt Creator和远程调试

本文详细介绍了在Ubuntu系统下为RK3568开发板搭建Qt交叉编译环境的完整流程,包括工具链配置、Qt源码交叉编译、Qt Creator环境设置以及远程调试技巧。通过手把手教程,开发者可以快速掌握RK3568平台的Qt开发环境搭建方法,实现高效的应用开发和部署。

weixin_30776273的博客 374

【clickhouse集群】教你轻松搭建ClickHouse 加协调(ClickHouse Keeper)服务器

ClickHouse集群部署,使用clickhouse-keeper

ly5393的博客 636

HyperLynx实战:手把手教你搞定DDR4信号完整性仿真(附ODT与终端电阻配置避坑)

本文详细介绍了使用HyperLynx进行DDR4信号完整性仿真的实战技巧,重点解析了ODT配置与终端电阻优化的黄金法则。通过模型准备、拓扑构建、ODT扫描等关键步骤,帮助硬件工程师规避常见设计陷阱,提升高速数字电路设计的效率与可靠性。

weixin_30861797的博客 639

postgresql+rabbitmq+clickhouse集群搭建方案

本文档介绍了一个基于PostgreSQL和RabbitMQ的高可用集群搭建方案,使用三台服务器(192.168.1.6主节点、192.168.1.89备节点、192.168.1.83兜底节点)。方案包含PostgreSQL集群(Patroni+etcd实现自动故障转移)、PgBouncer连接池、HAProxy负载均衡、Keepalived保障VIP高可用,以及RabbitMQ消息队列集群。详细说明了各组件的功能、端口分配和基础配置步骤,包括PostgreSQL用户创建、网络配置和RabbitMQ安装脚本。

技术分享博客 559

ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结

文章目录前言一、效果图展示二、地形(DEM)可视化表达1.一维可视化2.二维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化总结 前言 最近老师布置作业:DEM的可视化表达。想做一个等高线地形图那样、看起来高级一点的等高线,可是我看网上大多数教程都只展示了【等值线】工具,做出来效果都一般。我自认为自己做出来的效果还可以,把步骤分享给大家。 一、

pink_pig__的博客 5万+

什么是 SAP Fiori 的 Technical Catalog

笔者之前的文章曾经提到一个叫做本文介绍 Technical Catalog 这个概念在 SAP Fiori 技术体系中的作用。首先我们如何在系统里查看这个 Catalog SAP_BASIS_TCR_T 里面包含的内容呢?如果大家照着本文开头那篇文章里提到的步骤,那么在自己系统里会创建好名叫的 PFCG role.我们登录 ABAP 系统,启动事务码 PFCG,打开这个 role, 就能看到它。展开之后,发现它扮演着一个容器的角色,里面包含了很多 ABAP 对象。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 742

极光笔记 | 极光clickhouse千亿级数据分析实践之路

为了实现支持单表百亿数据集中查询分析时,能够灵活选择各种维度组合并且秒级返回执行结果,ClickHouse按列存储的特性便可以极大提升数据查询的效率,因为按列存储与按行存储相比,前者可以有效减少查询时所需扫描的数据量,如果数据按行存储,数据库首先会逐行扫描,并获取每行数据的所有字段,再从每一行数据中返回查询所需要的字段,导致会扫描所有的字段。ClickHouse同时支持丰富的二级索引,支持跳表结构、Bloom Filter等过滤功能,从而在查询时尽可能的减少不必要的记录读取,提高查询性能。

weixin_57579230的博客 1983

全局–局部傅里叶神经算子(GL-FNO):原理、严格推导与 PINN 混合策略

本文提出了一种全局-局部傅里叶神经算子(GL-FNO)及其与物理信息神经网络(PINN)的结合方法。主要内容包括: 架构设计:GL-FNO包含两个分支 - 全局分支处理低频结构,使用下采样输入;局部分支处理高频细节,使用全分辨率输入。两分支通过自适应门控机制融合。 理论分析:证明了GL-FNO在"低频全局+高频局部"任务上的优势,给出了误差分解和复杂度分析,并推导了与PINN结合时的渐进一致性条件。 实现方法:采用频谱微分计算物理残差,推导了完整的训练流程,包括数据损失与物理损失的联合优

VectorShift的博客 1330

ClickHouse最佳实践:生产环境部署与运维经验分享

ClickHouse® 是一个免费的大数据分析型数据库管理系统,专为高性能分析查询设计。本文将分享生产环境中部署和运维ClickHouse的实用经验,帮助新手用户快速掌握核心配置与优化技巧。 ## 🚀 生产环境部署准备 在部署ClickHouse前,需确保服务器满足以下基本要求: - **硬件配置**:推荐至少8核CPU、32GB内存和SSD存储 - **操作系统**:Linux系统(如Ub

gitblog_01140的博客 1020

Android 14.0 SystemUI状态栏居中显示时间和修改时间显示样式

在14.0的系统rom定制化开发中,在systemui状态栏系统时间默认显示在左边和通知显示在一起,但是客户想修改显示位置,想显示在中间,所以就要修改SystemUI 的Clock.java 文件这个就是管理显示时间的,居中显示的话就得修改布局文件了

安卓兼职framework和app工程师的博客 978

mabl:AI原生测试自动化平台的基础使用

mabl是一个基于人工智能和机器学习的云原生测试自动化平台。它通过使用先进的技术,如机器学习,自动创建和执行测试,自动分析测试结果,并根据需求的变化自动适配和维护测试。这样的自动化过程极大地提高了软件测试的效率和准确性。mabl的口号是 “You write code, mabl tests”,意味着开发者只需关注编写代码,而测试工作则可以交给mabl来完成。mabl的平台支持多种测试类型,包括 Web、App、Api、可访问性和性能测试,使得团队能够更快速、更有信心地发布软件。

blues_C的博客 3655

入门clickhouse的坑

出入clickhouse遇到各种问题,各种尝试,花了不少时间,这里记录一下学习跳坑的一些经验

1753

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

csdn-blog-clickhouse-datax

本文详细记录了3分片2副本ClickHouse集群的部署过程及DataX增量同步方案。采用独立Keeper容器+主机网络模式,确保DDL同步稳定性。集群包含6个ClickHouse节点和3个Keeper节点,分布在3台服务器上,实现跨服务器副本容灾。文章涵盖环境准备、目录规划、Keeper配置、ClickHouse集群配置等关键步骤,并提供了完整的配置示例和注意事项。该方案适用于CDP建设中MySQL到ClickHouse的实时数据同步场景,为OLAP分析和标签计算提供稳定数据基础。

weixin_38268896的博客 401

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

ClickHouse集群搭建踩坑实录:Ubuntu/CentOS双系统配置与密码安全那些事儿

本文详细记录了在Ubuntu与CentOS混合环境下搭建ClickHouse集群的实战经验,重点解决了双系统配置差异、密码安全加密、网络端口设置及性能调优等关键问题。特别介绍了ClickHouse 24.x内置Keeper替代ZooKeeper的配置方法,并提供了Grafana监控看板的部署指南,帮助开发者高效构建生产级ClickHouse集群。

weixin_30632089的博客 384

ClickHouse(04)如何搭建ClickHouse集群

ClickHouse集群的搭建和部署和单机的部署是类似的,主要在于配置的不一致,如果需要了解ClickHouse单机的安装设部署,可以看看这篇文章,ClickHouse(03)ClickHouse怎么安装和部署。ClickHouse集群部署流程大概如下:按照ClickHouse(03)ClickHouse怎么安装和部署中的介绍下载即可 配置hosts文件 在每台机器上安装单机版ClickHouse 按照ClickHouse(03)ClickHouse怎么安装和部署中的介绍安装即可要配置集群,需要在 /

编程代码,数据学习开发的日常总结。欢迎关注VX公众号:张飞的猪 1547

ClickHouse 23.11 版本发布说明

23.11版本新增25个新功能,实现了24项性能优化,修复了70处bug。

ClickHouseDB的博客 1436

clickhouse官方文档_clickhouse分析:zookeeper减压概述

点击上方蓝字关注我们“使用复制表之后,随着数据量的增加,zookeeper是瓶颈?这个问题估计任何一个对ch关注的人都会看到,当然解决这个问题是需要花费较大精力的。本次我主要想分享ch官方团队提出的减压方案,以及我们能通过什么手段来对zookeeper减压。”编译使用的clickhouse版本为: 19.5.3.1,本次测试比较主要以这个版本为主,鉴于clickhouse更新速度快,新...

weixin_39608478的博客 752

ClickHouse实战指南:从列式存储原理到生产环境部署与避坑

列式数据库管理系统(DBMS)通过将同一列的数据连续存储,大幅提升了数据分析查询的效率,尤其适用于在线分析处理(OLAP)场景。其核心原理在于减少I/O数据量、提高压缩率,并利用现代CPU的SIMD指令集进行向量化计算,从而实现海量数据的快速扫描与聚合。这一技术价值在于为大数据实时分析提供了高性能解决方案,广泛应用于用户行为分析、日志处理、商业智能等数据密集型领域。本文聚焦ClickHouse,深入探讨其列式存储与MergeTree引擎的设计,并结合实战经验,详细解析其安装部署、表结构设计、分布式集群配置等

weixin_33863087的博客 370

ClickHouse Keeper: 一个用 C++ 编写的 ZooKeeper 替代品

介绍 ClickHouse Keeper 的特点和优势,它是 ZooKeeper 资源的高效开源替代品。

ClickHouseDB的博客 3973

Clickhouse分布式集群搭建

这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。这里是针对所有的用户的,所有的shell。Zookeeper最小集群是3节点集群,生产环境中100节点以下集群3个Zookeeper节点就够用,500节点以下集群5节点就够用。可以到官网下载对应版本的jdk,这里选择安装jdk1.8版本,并上传至/home/hadoop/app目录下。...

大数据研习社 4559

搭建一套大数据框架——clickhouse篇

clickhouse去zookeeper搭建

知识不进脑子~ 1852
上一篇: SQL审核工具 SQLE ,绝对不容错过的活动
下一篇: 新特性解读 | MySQL 8.0 多因素身份认证
爱可生开源社区
博客等级 码龄8年 1936粉丝 1004原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值