hbase shell 操作 表空間 授權

2021-08-31 20:57:09 字數 3666 閱讀 7763

hbase shell

hbase中沒有database的概念,這裡的namespace命名空間指對一組表的邏輯分組,類似rdbms中的database;

hbase系統預設定義了兩個預設的namespace

hbase:系統內建表,包括namespace和meta表

default:使用者建表時未指定namespace的表都建立在此

1、建立namespace

hbase>create_namespace 'test_ns'

2、列出所有namespace

hbase>list_namespace

3、檢視namespace

hbase>describe_namespace 'test_ns'

4、在namespace下建立表

hbase>create 'test_ns:testtable', 'fm1'

5、檢視namespace下的表

hbase>list_namespace_tables 'test_ns'

6、刪除namespace  ----必須空的namespace才能刪除  要刪除掉裡面的表

hbase>disable 'test_ns:testtable'

hbase>drop 'test_ns:testtable'

hbase>drop_namespace 'test_ns'    

1、建立表 

hbase>create 't_demo_tbl','f1','f2','f3'                   #-------t_demo_tbl是表名,f1,f2,f3是列族名

2、檢視表的結構:

hbase>describe 't_demo_tbl'

3、禁用,啟用表

hbase>disable 't_demo_tbl'

hbase>enable 't_demo_tbl'

4、檢視表結構是否啟用【允許修改】 因為啟用的表不允許修改:

hbase>is_enabled 't_demo_tbl'

5、增加乙個列族:

hbase>disable 't_demo_tbl'

hbase>alter 't_demo_tbl', name=>'f1', versions=>3

hbase>enable 't_demo_tbl'

6、刪除某個列族: 

hbase>disable 't_demo_tbl'

hbase>alter 't_demo_tbl', name=>'f1', method=>'delete'         #--------注意大小寫(簡寫:alter 't_demo_tbl', 'delete'=>'f1')

hbase>enable 't_demo_tbl'

7、檢視所有的表

hbase>list

8、檢視某一表是否存在:

hbase>exists 't_demo_tbl'

9、清空表:

hbase>truncate 't_demo_tbl'

10、刪除某張表:

hbase>disable 't_demo_tbl'

hbase>drop 't_demo_tbl'

1、向表中插入資料:

hbase>put 't_demo_tbl', 'r1', 'f1:c1', 'value'           #--------列族的列可以不存在,修改資料也是put,只需行健[rowkey]和列相同即可

2、刪除某行資料的列[值]:

hbase>delete 't_demo_tbl', 'r1', 'c1', 'ts1'       #--------刪除t_demo_tbl表,行健為r1的c1列中,時間戳為ts1的值,如果不指定ts1就刪除所有列值[預設保持三個版本]

3、刪除某行資料:

hbase>deleteall 't_demo_tbl', 'r1'

4、獲取某個行健的所有列族的列值:

hbase>get 't_demo_tbl', 'r1'

5、獲取某個行健的所有某個列族的列值:

hbase>get 't_demo_tbl', 'r1','f1'

6、獲取某個行健的某兩個列族的列值:

hbase>get 't_demo_tbl', 'r1','f1','f2'

7、獲取某個行健的某個列族的某個列值:

hbase>get 't_demo_tbl', 'r1', 'f1:c1'

8、獲取某個表的所有行健值:

hbase>scan 't_demo_tbl'

9、獲取某個表的前3行:

hbase>scan 't_demo_tbl',

10、獲取某個表的從指定位置開始的行:

hbase>scan 't_demo_tbl',

11、獲取某個表的指定列的所有行資料:

hbase>scan 'heroes',

12、統計表的行數:

hbase>count 't_demo_tbl'

1、可以直接將語句寫入檔案test.hbaseshell,然後執行檔案:

hbase>hbase shell test.hbaseshell 

apache hbase從0.98.0, 0.95.2兩個版本開始支援namespace級別的授權操作

包括以下5種許可權,

read(r) 允許讀取許可權

write(w) 允許寫入許可權

execute(x) 允許執行許可權

create(c) 允許建表、刪表許可權

admin(a) 允許管理操作,如balance、split、snapshot等

1、給 user_1 使用者授權全域性的ca   grant , [, <@namespace> [, [, [, ]]]

hbase>grant 'user_1','ca'

2、**user_1使用者全域性的ca   revoke [, <@namespace> [, [, [, ]]]]

hbase>revoke 'user_1','ca'

3、給user_1使用者namespace許可權

hbase>grant 'user_1','rwxca','@t_ns'

4、給user_1使用者table許可權

hbase>grant 'user_1','rwxca','table_a'

5、檢視所有使用者許可權

hbase>user_permission

6、檢視某個表的許可權

hbase>user_permission 'table_a'

7、檢視某個namespace的許可權

hbase>user_permission '@t_ns'

8、在hbase中啟用授權機制

hbase-site.xml

hbase.security.authorization

true

hbase.coprocessor.region.classes

org.apache.hadoop.hbase.security.access.accesscontroller, org.apache.hadoop.hbase.security.token.tokenprovider

hbase.coprocessor.master.classes

org.apache.hadoop.hbase.security.access.accesscontroller

配置完成後需要重啟hbase集群

Hbase shell基本操作

注意 1 無論是表名或者列名,都需要新增引號 2.關鍵字大寫,如column,versions,timestamp等 1.建立表 語法 create 表名稱 列族名稱1 列族名稱1 create users userid address info 列出全部表 list 得到表的描述 describe...

hbase shell 常用操作

環境 centos 6.5,hadoop 1.1.2,zookeeper 3.4.4,hbase 0.94.7 security,jdk 1.7 一 進入shell 執行命令 bin hbase shell 二 shell操作命令 鍵入help,檢視所有操作命令 command groups gro...

Hbase Shell基本操作

hbase shell基本操作 環境和說明 軟硬體環境 centos7 64位 jdk1.8 hadoop2.7.4 hbase1.3.1 前置實驗hbase偽分布式環境搭建 一 操作準備 1 啟動hadoop,啟動hbase 2 啟動hbase shell 3 檢視hbase服務狀態 status...