zoukankan      html  css  js  c++  java
  • HBase经常使用操作之namespace

    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是否能实现资源统一化管理的关键。提高了总体的安全性。

  • 相关阅读:
    vue : 无法加载文件 C:UsersXXXAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    js全屏和退出全屏浏览器
    js 如何保存代码段并执行以及动态加载script
    计算年龄,精确到年月日
    js闭包问题
    构造函数和继承方法
    js 箭头函数不适用的场景
    获取一组数据的最大值和最小值
    地图
    json传输
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/5085830.html
Copyright © 2011-2022 走看看