在开启kerberos 后,hbase存在数据命名空间的问题(解决方案)

时间:2024-06-20 11:36:44

用hbase的超级用户

su - hbase
kinit -kt /etc/security/keytabs/hbase.headless.keytab hbase-bigdata@STARYEA.COM

进入后创建命名空间或数据库
hbase(main):005:0> create_namespace 'lhj_db'
0 row(s) in 0.2810 seconds
create_namespace 'lhj_ns'

hbase(main):006:0> grant 'lhj','RWC','@lhj_db'
0 row(s) in 0.5780 seconds

登录到普通用户后

先通过kinit -kt 获取凭证后

执行 hbase shell

创建表只有在命名空间下
hbase(main):003:0> create 'lhj_db:t_table','column'
0 row(s) in 4.3790 seconds

hbase(main):011:0> list
TABLE
lhj_db:t_table
lhj_db:table_a
2 row(s) in 0.0450 seconds

hbase(main):017:0> put 'lhj_db:t_table','002','column:name','lhj2'
0 row(s) in 0.0390 seconds

hbase(main):018:0> put 'lhj_db:t_table','003','column:name','lhj3'
0 row(s) in 0.0130 seconds

hbase(main):019:0> scan 'lhj_db:t_table'

hbase(main):023:0> scan 'lhj_db:t_table',{COLUMNS =>'column:name',LIMIT =>2,STARTROW => '001',STOPROW=>'003'}
ROW COLUMN+CELL
001 column=column:name, timestamp=1512375500577, value=lhj
002 column=column:name, timestamp=1512375813065, value=lhj2

 HBase权限解释

HBase提供的五个权限标识符:RWXCA,分别对应着READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
HBase提供的安全管控级别包括:
Superuser:拥有所有权限的超级管理员用户。通过hbase.superuser参数配置
Global:全局权限可以作用在集群所有的表上。
Namespace :命名空间级。
Table:表级。
ColumnFamily:列簇级权限。
Cell:单元级。
和关系数据库一样,权限的授予和回收都使用grant和revoke,但格式有所不同。grant语法格式:

grant user permissions table column_family column_qualifier

> grant 'hive', 'RW', 'member'
0 row(s) in 0.4660 seconds

> user_permission ‘命名空间’
User Table,Family,Qualifier:Permission
Hive member,,: [Permission: actions=READ,WRITE]