HBase 系列(五)——HBase常用 Shell 命令
一、基本命令
開啟 Hbase Shell:
# hbase shell
1.1 獲取幫助
# 獲取幫助
help
# 獲取命令的詳細資訊
help 'status'
1.2 檢視伺服器狀態
status
1.3 檢視版本資訊
version
二、關於表的操作
2.1 檢視所有表
list
2.2 建立表
命令格式: create ‘表名稱’, ‘列族名稱 1’,‘列族名稱 2’,‘列名稱 N’
# 建立一張名為Student的表,包含基本資訊(baseInfo)、學校資訊(schoolInfo)兩個列族
create 'Student','baseInfo','schoolInfo'
2.3 檢視錶的基本資訊
命令格式:desc ‘表名’
describe 'Student'
2.4 表的啟用/禁用
enable 和 disable 可以啟用/禁用這個表,is_enabled 和 is_disabled 來檢查表是否被禁用
# 禁用表
disable 'Student'
# 檢查表是否被禁用
is_disabled 'Student'
# 啟用表
enable 'Student'
# 檢查表是否被啟用
is_enabled 'Student'
2.5 檢查表是否存在
exists 'Student'
2.6 刪除表
# 刪除表前需要先禁用表
disable 'Student'
# 刪除表
drop 'Student'
三、增刪改
3.1 新增列族
命令格式: alter ‘表名’, ‘列族名’
alter 'Student', 'teacherInfo'
3.2 刪除列族
命令格式:alter ‘表名’, {NAME => ‘列族名’, METHOD => ‘delete’}
alter 'Student', {NAME => 'teacherInfo', METHOD => 'delete'}
3.3 更改列族儲存版本的限制
預設情況下,列族只儲存一個版本的資料,如果需要儲存多個版本的資料,則需要修改列族的屬性。修改後可透過 desc
命令檢視。
alter 'Student',{NAME=>'baseInfo',VERSIONS=>3}
3.4 插入資料
命令格式:put ‘表名’, ‘行鍵’,‘列族:列’,‘值’
注意:如果新增資料的行鍵值、列族名、列名與原有資料完全相同,則相當於更新操作
put 'Student', 'rowkey1','baseInfo:name','tom'
put 'Student', 'rowkey1','baseInfo:birthday','1990-01-09'
put 'Student', 'rowkey1','baseInfo:age','29'
put 'Student', 'rowkey1','schoolInfo:name','Havard'
put 'Student', 'rowkey1','schoolInfo:localtion','Boston'
put 'Student', 'rowkey2','baseInfo:name','jack'
put 'Student', 'rowkey2','baseInfo:birthday','1998-08-22'
put 'Student', 'rowkey2','baseInfo:age','21'
put 'Student', 'rowkey2','schoolInfo:name','yale'
put 'Student', 'rowkey2','schoolInfo:localtion','New Haven'
put 'Student', 'rowkey3','baseInfo:name','maike'
put 'Student', 'rowkey3','baseInfo:birthday','1995-01-22'
put 'Student', 'rowkey3','baseInfo:age','24'
put 'Student', 'rowkey3','schoolInfo:name','yale'
put 'Student', 'rowkey3','schoolInfo:localtion','New Haven'
put 'Student', 'wrowkey4','baseInfo:name','maike-jack'
3.5 獲取指定行、指定行中的列族、列的資訊
# 獲取指定行中所有列的資料資訊
get 'Student','rowkey3'
# 獲取指定行中指定列族下所有列的資料資訊
get 'Student','rowkey3','baseInfo'
# 獲取指定行中指定列的資料資訊
get 'Student','rowkey3','baseInfo:name'
3.6 刪除指定行、指定行中的列
# 刪除指定行
delete 'Student','rowkey3'
# 刪除指定行中指定列的資料
delete 'Student','rowkey3','baseInfo:name'
四、查詢
hbase 中訪問資料有兩種基本的方式:
-
按指定 rowkey 獲取資料:get 方法;
-
按指定條件獲取資料:scan 方法。
scan
可以設定 begin 和 end 引數來訪問一個範圍內所有的資料。get 本質上就是 begin 和 end 相等的一種特殊的 scan。
4.1Get查詢
# 獲取指定行中所有列的資料資訊
get 'Student','rowkey3'
# 獲取指定行中指定列族下所有列的資料資訊
get 'Student','rowkey3','baseInfo'
# 獲取指定行中指定列的資料資訊
get 'Student','rowkey3','baseInfo:name'
4.2 查詢整表資料
scan 'Student'
4.3 查詢指定列簇的資料
scan 'Student', {COLUMN=>'baseInfo'}
4.4 條件查詢
# 查詢指定列的資料
scan 'Student', {COLUMNS=> 'baseInfo:birthday'}
除了列 (COLUMNS)
修飾詞外,HBase 還支援 Limit
(限制查詢結果行數),STARTROW
(ROWKEY
起始行,會先根據這個 key
定位到 region
,再向後掃描)、STOPROW
(結束行)、TIMERANGE
(限定時間戳範圍)、VERSIONS
(版本數)、和 FILTER
(按條件過濾行)等。
如下代表從 rowkey2
這個 rowkey
開始,查詢下兩個行的最新 3 個版本的 name 列的資料:
scan 'Student', {COLUMNS=> 'baseInfo:name',STARTROW => 'rowkey2',STOPROW => 'wrowkey4',LIMIT=>2, VERSIONS=>3}
4.5 條件過濾
Filter 可以設定一系列條件來進行過濾。如我們要查詢值等於 24 的所有資料:
scan 'Student', FILTER=>"ValueFilter(=,'binary:24')"
值包含 yale 的所有資料:
scan 'Student', FILTER=>"ValueFilter(=,'substring:yale')"
列名中的字首為 birth 的:
scan 'Student', FILTER=>"ColumnPrefixFilter('birth')"
FILTER 中支援多個過濾條件透過括號、AND 和 OR 進行組合:
# 列名中的字首為birth且列值中包含1998的資料
scan 'Student', FILTER=>"ColumnPrefixFilter('birth') AND ValueFilter ValueFilter(=,'substring:1998')"
PrefixFilter
用於對 Rowkey 的字首進行判斷:
scan 'Student', FILTER=>"PrefixFilter('wr')"
原始碼GitHub地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/200/viewspace-2825928/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- HBase 常用Shell命令
- hbase之 Hbase shell 常用命令
- hbase - [03] 客戶端常用命令(hbase shell)客戶端
- Hbase shell 常用命令1
- hbase shell命令
- hbase基本概念和hbase shell常用命令用法
- Hbase shell 常用命令筆記筆記
- hbase shell常用命令總結
- HBASE的SHELL命令操作
- HBase shell 命令介紹
- hbase shell 基本操作命令
- Hbase - 常用命令
- Hbase(二)Hbase常用操作
- HBase的常用命令
- HBase篇--HBase常用優化優化
- hbase叢集 常用維護命令
- shell命令列中操作HBase資料庫命令列資料庫
- Hbase shell的基本操作
- HBase shell詳細操作指南
- Hbase快速開始——shell操作
- HBase管理命令彙總
- hbase shell - 使用filter進行scanFilter
- hbase中list命令報錯
- Storm系列(二)常用shell命令操作ORM
- HBase 教程:什麼是 HBase?
- hbase - [04] java訪問hbaseJava
- HBase
- [ 轉載 ] HBASE啟動指令碼/Shell解析指令碼
- HBase架構與基礎命令架構
- HBase篇--HBase操作Api和Java操作Hbase相關ApiAPIJava
- Hbase單機部署 java連線HbaseJava
- Hbase篇--Hbase和MapReduce結合ApiAPI
- HBase學習的第五天--HBase進階結尾和phoenix開頭
- HBase框架框架
- Hbase原理
- HBase初探
- HBase篇--搭建HBase完全分散式叢集分散式
- 常用shell 命令