大数据存储框架之HBase(3) NameSpace/Schema
我们都是到HBase里面有工作区间一说,这个工作区间也就相当于我们关系数据库中的数据库,也相当于我们Phoenix中的Schema。这里主要讲Phoenix和HBase的namespace之间的爱恨情仇的故事。
先配置HBase开启与Phoenix的schema之间的转换
<property><name>phoenix.schema.isNamespaceMappingEnabled</name><value>true</value></property><property><name>phoenix.schema.mapSystemTablesToNamespace</name><value>true</value></property>
在HBase中namespace相关操作
-- 创建namespace
create_namespace 'CI123'
-- 删除namespace
drop_namespace 'CI123'
-- 查看namespace
list_namespace
-- 在namespace下创建表
create 'CI123:table_name', 'family1'
-- 查看namespace下的表
list_namespace_tables 'CI123'
授权
具备Create权限的namespace Admin可以对表创建和删除、生成和恢复快照
具备Admin权限的namespace Admin可以对表splits或major compactions
首先,我们需要确定一点,就是我们的hbase-site.xml中有如下的配置,保证我们的HBase已经开启了授权
<!-- 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.superuser</name><value>corp,root,Smile-Sun,hbase</value></property>
-- 对用户 'corp' 赋予 write 权限
-- 权限含有: 读(Read) R / 写(Write) W / 执行(Execute) X / 创建(Create) C / 管理(Admin) A
grant 'corp' 'W' '@CI123'
-- 回收 用户 'corp' 权限
revoke 'corp' 'W' '@CI123'