1、介绍
在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分。Apache HBase从0.98.0, 0.95.2两个版本开始支持namespace级别的授权操作,HBase全局管理员可以创建、修改和回收namespace的授权。
2、namespace
HBase系统默认定义了两个缺省的namespace
- hbase:系统内建表,包括namespace和meta表
- default:用户建表时未指定namespace的表都创建在此
创建namespace
hbase>create_namespace 'ai_ns'
删除namespace
hbase>drop_namespace 'ai_ns'
查看namespace
hbase>describe_namespace 'ai_ns'
列出所有namespace
hbase>list_namespace
在namespace下创建表
hbase>create 'ai_ns:testtable', 'fm1'
查看namespace下的表
hbase>list_namespace_tables 'ai_ns'
3、授权
具备Create权限的namespace Admin可以对表创建和删除、生成和恢复快照 具备Admin权限的namespace Admin可以对表splits或major compactions
授权tenant-A用户对ai_ns下的写权限
hbase>grant 'tenant-A' 'W' '@ai_ns'
回收tenant-A用户对ai_ns的所有权限
hbase>revoke 'tenant-A''@ai_ns'
当前用户:hbase
hbase>namespace_create 'hbase_perf' hbase>grant 'mike', 'W', '@hbase_perf'
当前用户:mike
hbase>create 'hbase_perf.table20', 'family1' hbase>create 'hbase_perf.table50', 'family1'
mike创建了两张表table20和table50,同时成为这两张表的owner,意味着有'RWXCA'权限 此时,mike团队的另一名成员alice也需要获得hbase_perf下的权限,hbase管理员操作如下 当前用户:hbase
hbase>grant 'alice', 'W', '@hbase_perf'
此时alice可以在hbase_perf下创建表,但是无法读、写、修改和删除hbase_perf下已存在的表 当前用户:alice
hbase>scan 'hbase_perf:table20'
报错AccessDeniedException 如果希望alice可以访问已经存在的表,则hbase管理员操作如下 当前用户:hbase
hbase>grant 'alice', 'RW', 'hbase_perf:table20' hbase>grant 'alice', 'RW', 'hbase_perf:table50'
revoke:撤销权限:
hbase> revoke 'alice'(撤销用户的所有权限) hbase> revoke 'alice','hbase_perf:table50'(撤销用户alice对表hbase_perf:table50的权限)
查看用权限:
hbase>user_permission ‘tablename’(查看表对应的用户权限)
hbase>user_permission (查看所有权限)
在HBase中启用授权机制 hbase-site.xml
<property> <name>hbase.security.authentication</name> <value>simple</value> </property> <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.access.AccessController</value> </property> <property> <name>hbase.coprocessor.regionserver.classes</name> <value>org.apache.hadoop.hbase.security.access.AccessController</value> </property> <property> <name>hbase.superuser</name> <value>hadoop</value> </property>
配置完成后需要重启HBase集群
授权相关JIRA HBASE-8409
HBASE-9206
4、总结
HBase namespace特性是对表资源进行隔离的一种技术,隔离技术决定了HBase能否实现资源统一化管理的关键,提高了整体的安全性。
相关推荐
│ Day1507_Hbase shell中namespace的常用操作.mp4 │ Day1508_Hbase shell中表的DDL操作.mp4 │ Day1509_Hbase shell中表的DML操作(一).mp4 │ Day1510_Hbase shell中表的DML操作(二).mp4 │ Day1511_Hbase的...
hadoop 集群环境下 hbase 的shell 基本操作命令
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
来自一位老学姐的Hbase安装详细教程(清华大学镜像下)及基本操作,希望能带给你们些许帮助。主要包含Hbase的下载过程及其遇到的小问题,后续会继续完善该文档!
A.3实验三:熟悉常用的HBase操作 本实验对应第5章的内容。 A.3.1 实验目的 (1)理解HBase在Hadoop体系结构中的角色。(2)熟练使用HBase操作常用的 Shell命令。(3)熟悉HBase操作常用的 Java API。 A.3.2 实验平台 (1...
HBase基本操作 增删改查 java代码 要使用须导入对应的jar包
HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现,类似Google Bigtable...
(5):解决显示所有表遇到的错误(由于集群处于安全模式,该模式下只能进行只读操作,要解除安全状态才能运行) (6):create 'tempTable', 'f1', 'f2', 'f3',创建tempTable表,'f1', 'f2', 'f3'是列族 (7):put '...
HBase原理及实例
hbase_shell操作命令汇总, 内含HBase常用shell命令。
hadoop hbase_shell操作命令hadoop hbase_shell操作命令hadoop hbase_shell操作命令hadoop hbase_shell操作命令hadoop hbase_shell操作命令hadoop hbase_shell操作命令
HBase伪分布式环境搭建及数据操作测试 本人成功搭建伪分布式的操作以及截图
从HBase的集群搭建、HBaseshell操作、java编程、架构、原理、涉及的数据结构,并且结合陌陌海量消息存储案例来讲解实战HBase 课程亮点 1,知识体系完备,从小白到大神各阶段读者均能学有所获。 2,生动形象,化繁为...
该文档是介绍HBase表的基本操作,贡献出来,给大家下载!
这里详细介绍了hbase的命令行操作,版本信息的一些管理
hbase shell操作指南,提供hbase shell操作指导,其中包含增删改查
HBASE具体操作指令
java操作Hbase之从Hbase中读取数据写入hdfs中源码,附带全部所需jar包,欢迎下载学习。
使用Java API连接虚拟机HBase并进行数据库操作,Java源代码
htabse 命令的基本操作步骤,1.熟悉使用HBase操作常用的Shell命令。 2.学会表和族的属性操作。 3.学会Filter操作。 4.学会时间戳和数据版本的操作。 学会数据批量导入。