Hbase多租户实现方案—资源限制—quotas

本文介绍HBase中的资源限制方案—Quotas,包括其使用方式、实现原理及实际效果验证。Quotas支持对表级别及用户级别的QPS和请求大小进行限制,适用于多租户场景下资源有限的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hbase多租户实现方案资源限制—quotas

    上次整理了hbasde多租户基于namespace的权限管理实现方案,对于一些应用场景,基于namespace权限的多租户还不能够很好的满足业务的需求。业务有时候不单单需要基于权限的多租户,有时候还需要更复杂的基于资源限制调度的多租户,以满足在资源有限的情况下优先保证核心重要业务的正常运行。

社区针对这个问题提出了相应的应对措施,主要有如下三点:

1)资源限制,主要针对用户、namespace以及表的QPS和请求大小进行限制,详见HBase-11598

2)资源调度,主要针对任务进行优先级调度,通常会优先调度实时交互而且小的任务,而批量操作任务或者长时间操作任务(大scan)优先级相对较低,详见HBase-10993

3)资源隔离,将不同表通过物理隔离的方式分布到不同的RegionServer上,详见HBase-6721

本文将会重点介绍HBase中的资源限制方案 – Quotas,主要对其使用方式、实现原理进行介绍,并对其实际效果通过实践进行验证。另外,本文还会对HBase的资源调度原理进行简单介绍,并对主要配置进行讲解。

本文介绍资源限制方案—quotas。主要对其使用方式、实现原理进行介绍,并对其实际效果通过实践进行验证。

资源限制-Quotas

Quotas使用条件

1. Hbase版本在1.1.0以上,或者低版本应用了对应的patchHBase-11598

2.Quotas功能默认是关闭的,需要在配置文件hbase-site.xml中通过设置hbase.quota.enabledtrue打开。设置完成之后,需要重启HMaster才能生效

Quotas语句详解

hbase> set_quota TYPE => THROTTLE, THROTTLE_TYPE => READ, USER => 'u1', TABLE => 't2', LIMIT => '10req/sec'

  1Quotas分别支持表级别以及用户级别资源限制,或者同时支持表级别和用户级别,如示例所示

   (2THROTTLE_TYPE可以取值READ / WRITE,分别对随机读和随机写进行限制

LIMIT 可以从两个维度对资源进行限制,分别为req/time size/time,前者限制单位时间内的请求数,后者限制单位时间内的请求数据量。需要指明的是time的单位可以是sec | min | hour | daysize的单位可以是B(bytes) | K | M | G | T | P,因此LIMIT可以表示为’1000req/min’或者’100G/day’,分别表示限制1分钟的请求数在1000次以内限制一台的数据量为100G’

常用Quotas语句

hbase> set_quota TYPE => THROTTLE, TABLE => 't1', LIMIT => '1000req/sec'

hbase> set_quota TYPE => THROTTLE, THROTTLE_TYPE => WRITE, USER => 'u1', LIMIT => '10M/sec'

1set_quota命令执行的限制都是针对单个RegionServer来说的,并不是针对整个集群

2set_quota命令默认执行后并不会立刻生效,需要等待一段时间才会生效,等待时间默认为5min。可以通过参数 hbase.quota.refresh.period 进行设置,比如可以通过设置

hbase.quota.refresh.period = 60000将生效时间缩短为1min

3)可以通过命令list_quotas查看当前所有执行的set_quota命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值