1. 程式人生 > >HBase常用操作之namespace

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
  1. hbase>create_namespace 'ai_ns'
刪除namespace
  1. hbase>drop_namespace 
    'ai_ns'
檢視namespace
  1. hbase>describe_namespace 'ai_ns'
列出所有namespace
  1. hbase>list_namespace  
在namespace下建立表
  1. hbase>create 'ai_ns:testtable''fm1'
檢視namespace下的表
  1. hbase>list_namespace_tables 'ai_ns'

3、授權

具備Create許可權的namespace Admin可以對錶建立和刪除、生成和恢復快照具備Admin許可權的namespace Admin可以對錶splits或major compactions授權tenant-A使用者對ai_ns下的寫許可權
  1. hbase>grant 'tenant-A''W''@ai_ns'
回收tenant-A使用者對ai_ns的所有許可權
  1. hbase>revoke 'tenant-A''@ai_ns'
當前使用者:hbase
  1. hbase>namespace_create 'hbase_perf'
  2. hbase>grant 'mike''W''@hbase_perf'
當前使用者:mike
  1. hbase>create 'hbase_perf.table20''family1'
  2. hbase>create 'hbase_perf.table50''family1'
mike建立了兩張表table20和table50,同時成為這兩張表的owner,意味著有'RWXCA'許可權此時,mike團隊的另一名成員alice也需要獲得hbase_perf下的許可權,hbase管理員操作如下當前使用者:hbase
  1. hbase>grant 
    'alice''W''@hbase_perf'
此時alice可以在hbase_perf下建立表,但是無法讀、寫、修改和刪除hbase_perf下已存在的表當前使用者:alice
  1. hbase>scan 'hbase_perf:table20'
報錯AccessDeniedException如果希望alice可以訪問已經存在的表,則hbase管理員操作如下當前使用者:hbase
  1. hbase>grant 'alice''RW''hbase_perf.table20'
  2. hbase>grant 'alice''RW''hbase_perf.table50'

在HBase中啟用授權機制hbase-site.xml
  1. <property>
  2.      <name>hbase.security.authorization</name>
  3.      <value>true</value>
  4. </property>
  5. <property>
  6.      <name>hbase.coprocessor.master.classes</name>
  7.      <value>org.apache.hadoop.hbase.security.access.AccessController</value>
  8. </property>
  9. <property>
  10.      <name>hbase.coprocessor.region.classes</name>
  11.      <value>org.apache.hadoop.hbase.security.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value>
  12. </property>
配置完成後需要重啟HBase叢集

授權相關JIRA

4、總結

HBase namespace特性是對錶資源進行隔離的一種技術,隔離技術決定了HBase能否實現資源統一化管理的關鍵,提高了整體的安全性。