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'


在HBase中启用授权机制
hbase-site.xml
<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>

配置完毕后须要重新启动HBase集群



授权相关JIRA

4、总结

HBase namespace特性是对表资源进行隔离的一种技术,隔离技术决定了HBase是否能实现资源统一化管理的关键。提高了总体的安全性。


HBase经常使用操作之namespace的更多相关文章

  1. HBase常用操作之namespace

    1.介绍 在HBase中,namespace命名空间指对一组表的逻辑分组,类似RDBMS中的database,方便对表在业务上划分.Apache HBase从0.98.0, 0.95.2两个版本开始支 ...

  2. hbase的常用的shell命令&hbase的DDL操作&hbase的DML操作

    前言 笔者在分类中的hbase栏目之前已经分享了hbase的安装以及一些常用的shell命令的使用,这里不仅仅重新复习一下shell命令,还会介绍hbase的DDL以及DML的相关操作. hbase的 ...

  3. 【hbase】hbase的shell操作笔记

    HBase Shell $ ./bin/hbase shell # 进入交互界面 DDL操作: create:创建表(默认命名空间为default) # create '表名','列族1','列族2' ...

  4. hadoop执行hdfs文件到hbase表插入操作(xjl456852原创)

    本例中需要将hdfs上的文本文件,解析后插入到hbase的表中. 本例用到的hadoop版本2.7.2 hbase版本1.2.2 hbase的表如下: create 'ns2:user', 'info ...

  5. Hbase_02、Hbase的常用的shell命令&Hbase的DDL操作&Hbase的DML操作(转)

    阅读目录 前言 一.hbase的shell操作 1.1启动hbase shell 1.2执行hbase shell的帮助文档 1.3退出hbase shell 1.4使用status命令查看hbase ...

  6. Hbase理论&&hbase shell&&python操作hbase&&python通过mapreduce操作hbase

    一.Hbase搭建: 二.理论知识介绍: 1Hbase介绍: Hbase是分布式.面向列的开源数据库(其实准确的说是面向列族).HDFS为Hbase提供可靠的底层数据存储服务,MapReduce为Hb ...

  7. HBase(2) Java 操作 HBase 教程

    目录 一.简介 二.hbase-client 引入 三.连接操作 四.表操作 五.运行测试 FAQ 参考文档 一.简介 在上一篇文章 HBase 基础入门 中,我们已经介绍了 HBase 的一些基本概 ...

  8. Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作

    Spark-读写HBase,SparkStreaming操作,Spark的HBase相关操作 1.sparkstreaming实时写入Hbase(saveAsNewAPIHadoopDataset方法 ...

  9. 从零自学Hadoop(20):HBase数据模型相关操作上

    阅读目录 序 介绍 命名空间 表 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 ...

随机推荐

  1. jstl标签经典

    1. <c:out> 库 :Core(核心库) URI : http://java.sun.com/jsp/jstl/core 前缀 : c 描述 :<c:out> 标签是一个 ...

  2. C#压缩与解压

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  3. prevPage / nextPage in jQuery Mobile | George Nixon's Blog

    prevPage / nextPage in jQuery Mobile | George Nixon's Blog ui.prevPage[0].id I finally worked this o ...

  4. Java批量生成Mac地址到文件

    public class Main { public static void main(String[] args) { // 生成文件名称 String filePath = "mac.t ...

  5. WebService 之 WSDL文件 解说

    恩,我想说的是,是不是常常有人在开发的时候,特别是和第三方有接口的时候,走的是SOAP协议,然后用户给你一个WSDL文件,说依照上面的进行适配,嘿嘿,这个时候,要是你曾经没有开发过,肯定会傻眼,那假设 ...

  6. event.srcElement获得引发事件的控件(表单)

    <1> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  7. [置顶] ARM-Linux下WEB服务器Boa的移植、配置和运行测试

    Linux下使用的轻量级WEB服务器主要有:lighttpd.thttpd.shttpd和boa等等,而Boa是使用最为广泛的轻量级WEB服务器之一(当然,阿帕奇是世界使用排名第一的Web服务器软件) ...

  8. Boost Thread学习笔记三

    下面先对condition_impl进行简要分析.condition_impl在其构造函数中会创建两个Semaphore(信号量):m_gate.m_queue,及一个Mutex(互斥体,跟boost ...

  9. ajax后台处理返回json值

    public ActionForward xsearch(ActionMapping mapping, ActionForm form, HttpServletRequest request, Htt ...

  10. ExtJs4 笔记(13) Ext.menu.Menu 菜单、Ext.draw.Component 绘图、Ext.resizer.Resizer 大小变更

    本篇讲解菜单.绘图.还有大小变更控件.菜单控件可以附加到各种其他控件中,比如按钮.工具栏等,甚至可以直接通过通过右键打开(模拟右键菜单):ext对绘图的支持可以让我们通过js来绘图:大小变更控件可以让 ...