hbase高级特性之用户权限管理
**简介:**在hbase中权限管理,我们需要在hbase-site.xml配置才可以使权限管理设置生效
用户分超级用户和普通用户,超级用户直接在hbase-site.xml中指定,
我们只配置普通用户的权限
权限:
读 R
写 W
执行 X
创建表 C
管理 A
作用范围(scope):
namespace
表
列族
CELL
操作:
修改配置文件hbase-site.xml
<!--把权限管理打开-->
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<!--给master添加权限管理,-->
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<!--给region添加权限管理-->
<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>root,hadoop,hbase</value>
</property>
给user01用户,授予default namespace的“RWXCA”权限
grant ‘user01’,‘RWXCA’,‘@default’
给user02用户,授予表emp的“RW”权限
grant 'user02','RW','emp'
给user03用户,授予表emp的“R”权限
grant 'user03','R','emp'
检查default namespace和emp表的权限
user_permission '@default'
user_permission 'emp'
测试
使用user03验证,往emp表中插入数据
useradd user03 创建用户
chown -R user03 /root 让user03能够操作/root
sudo -u user03 /root/training/hbase-2.2.0/bin/hbase shell 用user03登录
注意:做完实验后,需要恢复root的权限
chown -R root /root
备份与恢复
备份与恢复:注意:实际中,用得很少!!!!
有几种方式:()快照
()主从复制
(*)export、import
hbase org.apache.hadoop.hbase.mapreduce.Export
例如:hbase org.apache.hadoop.hbase.mapreduce.Export emp /hbase_bk/emp
(*)copytable:本集群、远程集群
表深度拷贝:注意需要先建立新表。
create 'newstudent','info','grade'
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --new.name=newstudent student
其他方式的语法如下:
集群间拷贝
hbase org.apache.hadoop.hbase.mapreduce.CopyTable --peer.adr=zk-addr:2181:/hbase table_test
增量备份:增量备份表数据,参数中支持timeRange,指定要备份的时间范围
hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --starttime=start_timestamp --endtime=end_timestamp
部分表备份:
只备份其中某几个列族数据,比如一个表有很多列族,但我只想备份其中几个列族数据,CopyTable提供了families参数,同时还提供了copy列族到新列族形式
#copy cf1,cf2两个列族,不改变列族名字
hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --families=srcCf1,srcCf2
#copy srcCf1到目标dstCf1新列族
hbase org.apache.hadoop.hbase.mapreduce.CopyTable ... --families=srcCf1:dstCf1, srcCf2:dstCf2
(*)Java API
(*)直接备份HDFS的HFile