HBase的命令列
HBase命令
1,指導手冊
hbase
2,HBase Shell的一些基本操作命令
基本操作
-
1, 進入 HBase 命令列介面
hbase shell #任意一臺安裝HBase的伺服器節點
-
2,檢視幫助資訊
hbase(main):001:0> help #獲取所有命令的幫助資訊 hbase(main):001:0> help "ddl" #獲取一組命令的幫助資訊 hbase(main):001:0> help "list" #獲取單獨命令的幫助資訊
-
3,查詢伺服器狀態
hbase(main):001:0> status
-
4, 查詢 HBase 版本
方法一:hbase(main):001:0> version 方法二:hbase version
-
5,退出 HBase 命令列介面
方法一:hbase(main):008:0> exit 方法二:hbase(main):001:0> quit
DDL(資料定義語言)操作
-
1,建立表
-
預設版本
語法(預設版本號為1)create 'table_name','column_family1','column_family2',......
示例:建立表students,有兩個列簇:base_info,course_info
hbase(main):002:0> create 'students','base_info', 'course_info'
-
自己設定版本號
語法:create 'table_name', {NAME => 'column_family', VERSIONS => 'versions'},......
示例:建立表student,有兩個列簇:base_info,course_info,版本號前者為3,後者為1
hbase(main):001:0> create 'student',{NAME => 'base_info',VERSIONS => 3},{NAME => 'course_info',VERSIONS => 1}
-
-
2,查看錶
命令:hbase(main):003:0> list
-
3,查看錶結構
describe 'table_name'
示例:檢視student的表結構
hbase(main):005:0> describe 'student'
-
4,修改表結構
語法:alter ‘table_name’, {NAME => ‘column_family1’, VERSIONS => ‘versions’}
示例:修改students列簇base_info的版本號hbase(main):009:0> alter 'students',{NAME => 'base_info', VERSIONS => 3}
-
5, 刪除列簇
語法:alter ‘table_name’, {NAME => ‘column_family1’, METHOD => ‘delete’}
示例:將表students中的列簇base_info刪除hbase(main):016:0> alter 'students',{NAME => 'base_info',METHOD => 'delete'}
檢視是否刪除成功:
hbase(main):017:0> describe 'students'
-
6,刪除表
步驟:
disable(禁用)表
drop(刪除)表
示例:將表students刪除disable表:hbase(main):019:0> disable 'students' drop表:hbase(main):020:0> drop 'students'
-
7,查詢表是否存在
語法:exists ‘table_name’
示例:查詢student表是否存在hbase(main):005:0> exists 'student'
-
8,判斷表是否禁用
語法:is_disabled ‘table_name’
示例:判斷student表是否禁用hbase(main):026:0> is_disabled 'student'
-
9,判斷表是否啟用
語法:is_enabled ‘table_name’
示例:判斷student表是否啟用hbase(main):005:0> is_enabled 'student'
DML(資料操作語言)操作
1,新增資料
語法:put ‘table_name’,‘rowkey’,‘column_family:column’,‘value’,‘timestamp’
示例:為表student新增資料
put 'student','1001','base_info:name','shiny'
2,查詢資料
-
1,掃描整個表
語法:scan ‘table_name’,{COLUMNS => [ ‘column_family:column’,… ], LIMIT => num}
(1)掃描表student,base_info:name的前2條資料hbase(main):004:0> scan 'student',{COLUMNS => 'base_info:name',LIMIT => 2}
(2)掃描表student的前2條資料
hbase(main):005:0> scan 'student',{LIMIT => 2}
-
2,查詢某行記錄
語法:
(1)根據行鍵:get ‘table_name’,‘rowkey’
(2)根據行鍵和列簇:get ‘table_name’,‘rowkey’,‘column_family’
(3)根據行鍵、列簇和列:get ‘table_name’,‘rowkey’,‘column_family:column’
示例:
(1)查詢表student,行鍵1001中所有的資料hbase(main):073:0> get 'student','1001'
(2)查詢表student,行鍵1001中的course_info下所有的列值
hbase(main):001:0> get 'student','1001','course_info'
(3)查詢表student,行鍵1001中的base_info下的name值
hbase(main):072:0> get 'student','1001','course_info:Math'
只會顯示最新版本的資料
-
3,查詢表中資料行數
語法:count ‘table_name’
示例:查詢表student的行數(行鍵總數)hbase(main):006:0> count 'student'
3,修改資料
語法:put ‘table_name’,‘rowkey’,‘column_family:column’,‘value’
即重新put一下將原先的資料覆蓋
示例:將表student,1001中course_info:Math的值修改為100
hbase(main):009:0> put 'student','1001','course_info:Math','100'
查詢多個版本資料
(1)顯示最新版本的資料
hbase(main):072:0> get 'student','1001','base_info:name'
(2)通過timestamp來獲取對應版本的資料(前提知道timestamp)
hbase(main):013:0> get 'student','1001',{COLUMN=>'course_info:Math',TIMESTAMP => 1500542224220}
(3)通過versions來獲取多個版本的資料
hbase(main):019:0> get 'student','1001',{COLUMN=>'course_info:Math',VERSIONS => 2}
4,刪除資料
-
1,刪除行中某個列值
語法:delete ‘table_name’,‘rowkey’,‘column_family:column’,‘timestamp’
必須指定列名,指定時間戳說明刪除指定版本資料
示例:刪除表student,1001中的course_info:Math的資料(所有版本)hbase(main):015:0> delete 'student','1001','course_info:Math'
-
2,刪除行
語法:deleteall ‘table_name’,‘rowkey’
不指定列名,刪除整行資料
示例:刪除表student,1001的所有資料hbase(main):018:0> deleteall 'student','1001'
-
3,清空表
語法:truncate ‘table_name’
示例:清空表studenthbase(main):020:0> truncate 'student'