Hbase热点现象

浩客1年前技术文章494

热点现象

HBase热点现象是指在分布式存储系统HBase中,由于数据访问不均衡而导致部分Region Server负载过重的情况。这种不均衡通常是由于某些特定的数据行或列族频繁地被访问,从而导致某个或某些Region Server成为整个系统的瓶颈。

常见的热点现象包括“写热点”和“读热点”。写热点指的是某些特定的数据行或列族被持续高频率地写入,导致某个Region Server负责处理大量的写请求,而其他Region Server负载较轻。这会造成该Region Server的负载过重,容易引发延迟增加、写入速度下降等问题。读热点则是某些特定的数据行或列族被频繁地读取,导致某个Region Server成为大部分读请求的瓶颈,影响整个系统的读取性能。


热点现象出现的原因

1、数据倾斜:某些特定的数据行或列族被频繁地访问或写入,可能是由于业务需求、数据特性等因素导致。这会导致部分Region Server承载了大部分的读写负载,造成不均衡。

2、rowkey设计不合理。

3、热点发生在大量的client直接访问集群的一个或极少数个节点(访问可能是读,写或者其他操作)。大量访问会使热点region所在的单个机器超出自身承受能力,引起性能下降甚至region不可用,这也会影响同一个RegionServer上的其他region,由于主机无法服务其他region的请求。


热点现象解决办法

为了防止热点问题,对rowkey进行合理设计使得不同行在同一个region,但是在更多数据情况下,数据应该被写入集群的多个region。

1、加盐:在HBase中,可以使用加盐来增加数据的分布均匀性和查询性能。加盐的基本思想是在数据的行键(Rowkey)中添加随机生成的字符串或数字作为前缀,使得相似的行键被分散到不同的Region中存储。在rowkey的前面增加随机数,使得它和之前的rowkey的开头不同。分配的前缀种类数量应该和你想使用数据分散到不同的region的数量一致。

2、哈希:哈希可以使负载分散到整个集群,但是读却是可以预测的。使用确定的哈希可以让客户端重构完整的rowkey,可以使用get操作准确获取某一个行数据

3、反转:反转固定长度或者数字格式的rowkey。这样可以使得rowkey中经常改变的部分(最没有意义的部分)放在前面。这样可以有效的随机rowkey,但是牺牲了rowkey的有序性。

4、时间戳反转:一个常见的数据处理问题是快速获取数据的最近版本,使用反转的时间戳作为rowkey的一部分对这个问题十分有用,可以用 Long.Max_Value - timestamp 追加到key的末尾,例如[key][reverse_timestamp],[key]的最新值可以通过scan [key]获得[key]的第一条记录,因为HBase中rowkey是有序的,第一条记录是最后录入的数据。

5、HBase建表预分区:合理设计HBase数据表的预分区,通过制定好的分区策略将数据均匀地分布在不同的Region中。这样可以避免部分Region Server承载过多的负载,减轻热点现象的影响


相关文章

sql_mode参数

sql_mode参数

一、参数含义sql_mode是个很容易被忽视的变量,其本身主要就是一种语法校验规则 ,默认值是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。二、常用值含义1、ONLY_FUL...

oracle安装gi执行root.sh报错:PRCR-1079 : Failed to start resource ora.cvu

1、具体报错如下:安装gi执行root.sh报错:PRCC-1014 : LISTENER_SCAN1 was already runningPRCR-1004 : Resource ora.LIST...

数据湖技术之iceberg(十二)Flink与Iceberg整合-SQL API操作

数据湖技术之iceberg(十二)Flink与Iceberg整合-SQL API操作

1.SQL API 创建Iceberg表并写入数据StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnv...

zabbix监控导出生产环境数据

zabbix监控导出生产环境数据

问题需求导出zabbix数据库中 某个主机组下的端口监控 、 URL监控信息处理过程由于数据量较大,手动统计比较费时,因此考虑通过直接从数据库取出相关数据查找想关联的表,找到各监控项位于哪个数据库表内...

Trino对接haproxy开启ssl

Trino对接haproxy开启ssl

1、背景客户在开启https后,在高并发的情况下,集群性能下降严重。初步估计是由于worker和Coordinator交互都需要进行加密和解密,会提高cpu使用率,导致服务变慢。现在采用haproxy...

linux开启Firewall白名单限制ip访问

linux开启Firewall白名单限制ip访问

1、Firewalld是否启动成功systemctl start firewalld && systemctl enable firewalld 1 2、开启规则需求:客户由...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。