「从零单排HBase 10」HBase集群多租户实践
在HBase1.1.0发布之前,HBase同一集群上的用户、表都是平等的,大家平等共用集群资源。容易碰到两个问题: 一是某些业务较其他业务重要,需要在资源有限的情况下优先保证核心重要业务的正常运行 二是有些业务QPS常常很高,占用大量系统资源,导致其他业务无法正常运转。 这是典型的多租户问题。因此,我们需要通过资源隔离来解决多租户问题,同时,需要考虑计算型业务与存储型业务混合部署来提高集群的资源利用率。 1.基本概念 1.1 namespace逻辑隔离 HBase命名空间 namespace 与关系数据库系统中的数据库database类似,方便对表在业务上进行划分,实现逻辑隔离。 Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。 这种抽象为即将出现的多租户相关功能奠定了基础。 1.2. 配额管理(Quotas) 资源限制,主要针对用户、namespace以及表的QPS和请求大小进行限制。 相关jira见: https://issues.apache.org/jira/browse/HBASE-8410、https://issues.apache.org/jira/browse/HBASE-11598 一般可以对热点表进行限制,或者在高峰期,对非核心业务表进行限制