登 录
注 册
< 大 数 据
Flink
Hadoop
Spark
Hive
HBase
Kafka
其他框架
HBase读写流程
多租户环境
HBase HA
HBase预分区
RowKey设计
HBase优化
HBase数据删除与Split
HBase PythonAPI
HBase存储结构
HBased对接Hive
热门推荐>>>
中台架构
中台建设与架构
Hadoop
源码分析-NN启动(三)
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
安全常识
一文读懂SSO
当前位置:
首页
>>
HBase
>>
多租户环境
多租户环境
2020-07-02 00:51:26 星期四 阅读:2408
参考文章:https://www.imooc.com/learn/294 ####企业级HBase架构及版本选择 **`小型集群`** >小于20台,无HA,只有1个ZK,HBase与其他的组件安装在一台机器上共享资源,注意YARN不能占满节点所有资源,否则导致HBASE不可用 **`中型集群`** >20-50台 Hadoop HA,HBASE HA 3个Zookeeper 3个Hmaster与3个Zookeeper可以放在一台机器上 **`大型集群`** >50+台 5、7个Zookeeper HBASE可以单独部署在服务器上 ####HBASE多租户环境介绍 生产中,集群资源抢占,导致核心业务无法正常运行,可通过资源限制和资源隔离实现多租户环境。实现机制 `权限控制` `资源限制`:对用户、表和命名空间的限制,包括每秒的请求数等 `资源隔离`:通过对regionserver group进行分组实现资源隔离 ####HBASE添加多租户机制 1、修改相关配置文件(hbase-site.xml,具体配置如下) 2、设置超级用户(这个用户是指Linux系统的用户) 3、开启配额 4、设置配额生效时长 5、开启安全认证 6、添加安全相关的RPC协处理器类 7、添加负载均衡协处理器类。包括(master、slave) 8、同步到其他节点 9、重启HBASE集群,为了重启的时候保证HBASE服务可用,需要两台Hmaster 先重启一台Hmaster,启动成功后再启动另外一台 两台Hmaster都启动成功后,依次滚动重启regionserver ```xml <!-- hbase-site.xml --> <!-- 设置HBase超级用户 --> <property> <name>hbase.superuser</name> <value>hbase,hadoop,admin</value> </property> <!-- 添加加安全相关的RPC协处理器类 --> <property> <name>hbase.rpc.engine</name> <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value> </property> <!-- 开启配额 --> <property> <name>hbase.quota.enabled</name> <value>true</value> </property> <!--HBase 开启认证 --> <property> <name>hbase.security.authorization</name> <value>true</value> </property> <property> <name>hbase.coprocessor.master.classes</name> <value>org.apache.hadoop.hbase.security.access.AccessController</value> </property> <property> <name>hbase.coprocessor.region.classes</name> <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value> </property> <property> <name>hbase.coprocessor.regionserver.classes</name> <value>org.apache.hadoop.hbase.security.access.AccessController</value> </property> ``` ####HBASE权限管理 `read`:命名空间,表、列族等读取 `write`:命名空间,表、列族等写入 `exec`:执行权限(一般不会配置出去) `create`:创建权限 `admin`:超级管理员权限 ####HBASE权限范围 `superuser`:拥有所有权限的超级用户 `global`:全局权限可以作用在集群所有的表上 `Namespace`:命名空间级别权限 `table`:表级权限 `columnFamily`:列族级别 `Cell`:单元格级别 ####HBASE用户分类 高级管理员:admin或者具有A权限的用户 中级管理员:给表管理员分配权限 表管理员 ####HBase资源限制 `注意:在HBASE1.1.0以上才可以配置资源限制` 用户:对某个用户进行资源配置 命名空间:对某个命名空间进行资源配置,比如限制命名空间包含几个region等 表的请求大小:以字节,MB/GB为单位 - 读取速度 写入速度 QPS:表的查询率。限制某个表每秒查询多少次,写入多少次 实例:限制hive用户针对orderDetail表每秒只能读取10MB数据 ```bash hbase> set_quota TYPE=> THROTTLE, USER=> "hive", THROTTLE_TYPE => READ, TABLE=> "orderDetail", LIMIT => "10M/sec" ``` ####HBASE资源隔离 将一个HBASE集群的regionserver拆分为几个group,不同的业务根据需要的资源跑在不同资源regionserver组上,解决资源抢占的问题。HBASE可针对如下对象进行灵活配置 >创建多个region server group 指定某个region server group 包含哪些机器 指定某个命名空间在哪个group里 如果要删除group,必须要将里面的所有表移出才可以