HBase的常用命令

你的镁偷走了我的锌發表於2024-11-17

一、general類

1、檢視叢集的狀態

status

2、檢視資料庫版本

version

3、顯示當前使用者和組

whoami

4、檢視操作表的命令

table_help

5、退出hbase

exit或者ctrl+c

二、DDL相關

注:DDL是用於定義和管理資料庫中的結構的命令,例如建立,刪除,修改表等操作

1、建立表

注:建立表的時候需要指定表名和列列簇
create 'student','info','detail'

也可指定更多的屬性如下:
create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true},{NAME => 'f2',..}

2、修改表結構(新增、刪除)

1新增一個列簇

alter '表名','列簇名'

2刪除一個列簇

alter '表名',{NMAE=>'列簇名',METHOD=>'delete'}

3修改列簇的屬性

修改f1列族的版本為5
alter 't1', NAME => 'f1', VERSIONS => 5

3、獲取表的描述

describe

4、列舉所有的表

list

5、表是否存在

exists

6、啟用表和禁用表

enable啟用表

enable 'student'

判斷標是否被啟動

is_enabled 'student'

disable 禁用表

disable 'student'

判斷表是否被禁用

is_disabled

7、刪除表

drop
當我們想要刪除一個表的時候,需要先將該表禁用
disable
然後再執行刪除命令,否則會報錯

drop 'student'

8、獲取rowKey所在的區locate_region

locate_region '表名','行鍵'

9、hbase中的名稱空間

1、檢視hbase中的名稱空間

list_namespace

2、為什麼要搞名稱空間

答:因為hbase中沒有資料庫的概念,那我們怎麼區分表所放的位置呢,就可以使用名稱空間,可以起到分類管理表的作用

3、獲取名稱空間的描述

describe_namespace 'default'

4、檢視名稱空間下的所有表

list_naemspace_tables 'default'

5、建立名稱空間

create_namespace 'bigdata32'

6、刪除名稱空間

drop_namespace 'bigdata32'

DML相關

注:DML指的是運算元據庫語言

1、插入或者修改資料put

put '表名','行鍵','列族名','列值'
put '表名','行鍵','列族名:列名','列值'

建立表

create 'users', 'info', 'detail', 'address'

第一行資料

put 'users', 'mengday', 'info:id', '1'
put 'users', 'mengday', 'info:name', '張三'
put 'users', 'mengday', 'info:age', '28'
put 'users', 'mengday', 'detail:birthday', '1990-06-26'
put 'users', 'mengday', 'detail:email', 'abc@163.com'
put 'users', 'mengday', 'detail:create_time', '2019-03-04 14:26:10'
put 'users', 'mengday', 'address', '上海市'

第二行資料

put 'users', 'vbridbest', 'info:id', '2'
put 'users', 'vbridbest', 'info:name', '李四'
put 'users', 'vbridbest', 'info:age', '27'
put 'users', 'vbridbest', 'detail:birthday', '1990-06-27'
put 'users', 'vbridbest', 'detail:email', 'xxx@gmail.com'
put 'users', 'vbridbest', 'detail:create_time', '2019-03-05 14:26:10'
put 'users', 'vbridbest', 'address', '北京市'

第三行資料

put 'users', 'xiaoming', 'info:id', '3'
put 'users', 'xiaoming', 'info:name', '王五'
put 'users', 'xiaoming', 'info:age', '26'
put 'users', 'xiaoming', 'detail:birthday', '1990-06-28'
put 'users', 'xiaoming', 'detail:email', 'xyz@qq.com'
put 'users', 'xiaoming', 'detail:create_time', '2019-03-06 14:26:10'
put 'users', 'xiaoming', 'address', '杭州市'

2、全表掃描scan

scan '表名'

掃描整個列族

sacn 'users',{COLUMN=> '列族名'}

掃描整個列族的某一個列

scan 'users',{COLUMN=>'info:age'}

3、獲取資料get

get '表名','行鍵'
get 'users','mengday'

根據某一行某列族的資料

get '表名', '行鍵', '列族名'
get 'users', 'xiaoming', 'info'

4、刪除某個列族中的某個列delete

delete '表名','行鍵','列族名:列名'

delete 'users','xiaoming','info:age'

5、刪除某行資料

deleteall '表名','行鍵'

deleteall 'users','xiaoming'

6、清除整個表中的資料truncate

truncate '表名'