火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?

2023-10-03 16:15

本文主要是介绍火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

ClickHouse 是业内被广泛使用的 OLAP 引擎。当集群规模过大时,ClickHouse 则面临使用局限性的问题。如何提升 ClickHouse 的可用性,成为困扰广大开发者的难题之一。

目前,字节跳动内部的 ClickHouse 节点总数超过 18000 个,管理总数据量超过 700PB,最大的集群规模在 2400 余个节点。字节跳动内部很多业务都建立在 ClickHouse 为基础的查询引擎上,因此在可用性提升上具备广泛经验。

在内部丰富经验的基础之上,火山引擎也将字节跳动可用性方面经验通过云原生数据仓库 ByteHouse 对外输出。ByteHouse 以开源 ClickHouse 为基础,经过字节跳动多年的优化和完善,提供了更丰富的功能和更强的性能,主要为用户带来极速的分析体验,解决了 ClickHouse 集群节点数增长过快,带来的多方面问题:Zookeeper 性能出现瓶颈,故障发生频率增加;故障恢复时间过长;运维复杂度提升。

为了进一步提升 ClickHouse 的可用性,ByteHouse 从降低 Zookeeper 压力和提升故障恢复能力两个方面进行升级。

首先,ByteHouse 采用先进的集群管理策略,降低 Zookeeper 在集群管理中的角色和压力。Zookeeper 在分布式系统中常常被用作协调和管理节点,但在大规模集群中可能会成为性能瓶颈。通过减少对 Zookeeper 的依赖,ByteHouse 将部分协调和管理功能下放到各个节点上,使得集群中的每个节点能够自主地进行协调和管理,从而降低了 Zookeeper 的压力。

其次,ByteHouse 提升了 ClickHouse 故障恢复能力。在分布式系统中,故障恢复是保障系统可用性的重要环节。通过完善的数据备份和恢复策略,ByteHouse 可以在节点发生故障时,快速恢复数据和系统状态。此外,ByteHouse 还通过节点状态实时检测和自动隔离策略,防止故障扩散到整个集群。

ByteHouse 故障恢复改造思路

以上优化策略不仅提高了集群的性能和稳定性,也使得 ByteHouse 成为了企业级用户在大数据处理和分析领域的重要选择。未来,火山引擎 ByteHouse 将继续致力于提供更优质的大数据处理和分析服务,帮助企业更好实现数字化转型。

这篇关于火山引擎 ByteHouse:如何提升 18000 节点的 ClickHouse 可用性?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/589

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

Smarty模板引擎工作机制(一)

深入浅出Smarty模板引擎工作机制,我们将对比使用smarty模板引擎和没使用smarty模板引擎的两种开发方式的区别,并动手开发一个自己的模板引擎,以便加深对smarty模板引擎工作机制的理解。 在没有使用Smarty模板引擎的情况下,我们都是将PHP程序和网页模板合在一起编辑的,好比下面的源代码: <?php$title="深处浅出之Smarty模板引擎工作机制";$content=

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的