1. 程式人生 > 實用技巧 >hbase的基本shell命令

hbase的基本shell命令

1、hbase中的shell命令

help 檢視命令的使用描述 help '命令名'
whoami 身份(root、user) whoami
version 返回hbase版本資訊 version
status 返回hbase叢集的狀態資訊 status
table_help 檢視如何操作表 table_help
create 建立表 create '表名', '列族名1', '列族名2', '列族名N'
alter 修改列族 新增列族:alter '表名', NAME=>'列族名'
刪除列族:alter '表名', {NAME=> '列族名', METHOD=> 'delete'}
describe 顯示錶相關的詳細資訊 describe '表名'
list 列出hbase中存在的所有表 list
exists 測試表是否存在 exists '表名'
put 新增或修改的表的值 put '表名', '行鍵', '列族名', '列值'
put '表名', '行鍵', '列族名:列名', '列值'
scan 通過對錶的掃描來獲取對用的值 scan '表名'
掃描某個列族:scan '表名',{COLUMN=>'列族名',FORMATTER =>'toString'}
掃描某個列族的某個列:scan '表名', {COLUMN=>'列族名:列名'}
查詢同一個列族的多個列: scan '表名', {COLUMNS => [ '列族名1:列名1', '列族名1:列名2' …]}
get 獲取行或單元(cell)的值 get '表名', '行鍵'
get '表名', '行鍵', '列族名'
count 統計表中行的數量 count '表名'
incr 增加指定錶行或列的值 incr '表名', '行鍵', '列族:列名', 步長值
get_counter 獲取計數器 get_counter '表名', '行鍵', '列族:列名'
delete 刪除指定物件的值(可以為表,行,列對應的值,另外也可以指定時間戳的值) 刪除列族的某個列: delete 表名', '行鍵', '列族名:列名'
deleteall 刪除指定行的所有元素值 deleteall '表名', '行鍵'
truncate 重新建立指定表(清空表) truncate '表名'
enable 使表有效 enable '表名'
is_enabled 是否啟用 is_enabled '表名'
disable 使表無效(刪除表之前先禁用) disable '表名'
is_disabled 是否無效 is_disabled '表名'
drop 刪除表 drop的表必須是disable的
disable '表名'
drop '表名'
shutdown 關閉hbase叢集(與exit不同) shutdown
tools 列出hbase所支援的工具

tools

exit 退出hbase shell

1、使用help獲得全部命令的列表,使用help ‘command_name’獲得某一個命令的詳細資訊。 例如:

help ‘list'

2、查詢伺服器狀態

status

3、查詢Hbase版本:

version

4、檢視所有表

list

5、建立一個表

create 'member','member_id','address','info’  

6、獲得表的描述

describe 'member'

7、新增一個列族

alter 'member', 'id'

8、刪除一個列族

alter 'member', {NAME => 'member_id', METHOD => 'delete’}

9、刪除列

1)通過delete命令,我們可以刪除id為某個值的‘info:age’欄位,接下來的get就無視了

delete 'member','debugo','info:age'
get 'member','debugo','info:age'

2)刪除整行的值:deleteall

deleteall 'member','debugo'
get 'member',’debugo'

10、使用exists來檢查表是否存在

exists 'member'

11、刪除表需要先將表disable。

disable 'member'
drop 'member'

12、在HBase shell中,我們可以通過put命令來插入資料。例如我們新建立一個表,它擁有id、address和info三個列簇,並插入一些資料。列簇下的列不需要提前建立,在需要時通過:來指定即可。

create 'member','id','address','info'
# 資料
put 'member', 'debugo','id','11'
put 'member', 'debugo','info:age','27'
put 'member', 'debugo','info:birthday','1987-04-04'
put 'member', 'debugo','info:industry', 'it'
put 'member', 'debugo','address:city','beijing'
put 'member', 'debugo','address:country','china'
put 'member', 'Sariel', 'id', '21'
put 'member', 'Sariel','info:age', '26'
put 'member', 'Sariel','info:birthday', '1988-05-09 '
put 'member', 'Sariel','info:industry', 'it'
put 'member', 'Sariel','address:city', 'beijing'
put 'member', 'Sariel','address:country', 'china'
put 'member', 'Elvis', 'id', '22'
put 'member', 'Elvis','info:age', '26'
put 'member', 'Elvis','info:birthday', '1988-09-14 '
put 'member', 'Elvis','info:industry', 'it'
put 'member', 'Elvis','address:city', 'beijing'
put 'member', 'Elvis','address:country', 'china'

13、查詢表中有多少行:count

count 'member'

14、get

1)獲取一個id的所有資料

get 'member', ‘Sariel'

2)獲得一個id,一個列簇(一個列)中的所有資料:

get 'member', 'Sariel', 'info'

15、查詢整表資料

scan 'member'

16、掃描整個列簇

scan 'member', {COLUMN=>'info'}

17、指定掃描其中的某個列:

scan 'member', {COLUMNS=> 'info:birthday'}