1. 程式人生 > >HBase shell命令

HBase shell命令

# HBase shell中的幫助命令非常強大,使用help獲得全部命令的列表,使用help ‘command_name’獲得某一個命令的詳細資訊
help 'status'
# 查詢伺服器狀態
status
# 檢視所有表
list
# 建立一個表
create 'FileTable','fileInfo','saveInfo'
# 獲得表的描述
describe 'FileTable'
# 新增一個列族
alter 'FileTable', 'cf'
# 刪除一個列族
alter 'FileTable', {NAME => 'cf', METHOD => 'delete'}
# 插入資料
put 'FileTable', 'rowkey1','fileInfo:name','file1.txt'
put 'FileTable', 'rowkey1','fileInfo:type','txt'
put 'FileTable', 'rowkey1','fileInfo:size','1024'
put 'FileTable', 'rowkey1','saveInfo:path','/home'
put 'FileTable', 'rowkey1','saveInfo:creator','tom'
put 'FileTable', 'rowkey2','fileInfo:name','file2.jpg'
put 'FileTable', 'rowkey2','fileInfo:type','jpg'
put 'FileTable', 'rowkey2','fileInfo:size','2048'
put 'FileTable', 'rowkey2','saveInfo:path','/home/pic'
put 'FileTable', 'rowkey2','saveInfo:creator','jerry'
# 查詢表中有多少行
count 'FileTable'
# 獲取一個rowkey的所有資料
get 'FileTable', 'rowkey1'
# 獲得一個id,一個列簇(一個列)中的所有資料
get 'FileTable', 'rowkey1', 'fileInfo'
# 查詢整表資料
scan 'FileTable'
# 掃描整個列簇
scan 'FileTable', {COLUMN=>'fileInfo'}
# 指定掃描其中的某個列
scan 'FileTable', {COLUMNS=> 'fileInfo:name'}
# 除了列(COLUMNS)修飾詞外,HBase還支援Limit(限制查詢結果行數),STARTROW(ROWKEY起始行。會先根據這個key定位到region,再向後掃描)、STOPROW(結束行)、TIMERANGE(限定時間戳範圍)、VERSIONS(版本數)、和FILTER(按條件過濾行)等。比如我們從RowKey1這個rowkey開始,找下一個行的最新版本
scan 'FileTable', { STARTROW => 'rowkey1', LIMIT=>1, VERSIONS=>1}
# Filter是一個非常強大的修飾詞,可以設定一系列條件來進行過濾。比如我們要限制名稱為file1.txt
scan 'FileTable', FILTER=>"ValueFilter(=,'name:file1.txt’)"
# FILTER中支援多個過濾條件通過括號、AND和OR的條件組合
scan 'FileTable', FILTER=>"ColumnPrefixFilter('typ') AND ValueFilter ValueFilter(=,'substring:10')"
# 通過delete命令,我們可以刪除某個欄位,接下來的get就無結果
delete 'FileTable','rowkey1','fileInfo:size'
get 'FileTable','rowkey1','fileInfo:size'
# 刪除整行的值
deleteall 'FileTable','rowkey1'
get 'FileTable',’rowkey1'
# 通過enable和disable來啟用/禁用這個表,相應的可以通過is_enabled和is_disabled來檢查表是否被禁用
is_enabled 'FileTable'
is_disabled 'FileTable'
# 使用exists來檢查表是否存在
exists 'FileTable'
# 刪除表需要先將表disable
disable 'FileTable'
drop 'FileTable'