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 - [03] 客戶端常用命令(hbase shell)客戶端
- hbase shell命令
- hbase之hbase shell
- HBase的常用命令
- Hbase(二)Hbase常用操作
- Hbase shell的基本操作
- Storm系列(二)常用shell命令操作ORM
- HBase Shell 十大花式玩兒法
- HBase架構與基礎命令架構
- hbase - [04] java訪問hbaseJava
- HBase 教程:什麼是 HBase?
- HBase
- Hbase單機部署 java連線HbaseJava
- Hbase一:Hbase介紹及特點
- HBase學習的第五天--HBase進階結尾和phoenix開頭
- 常用shell 命令
- HBase概述
- hbase整理
- HBase實操:HBase-Spark-Read-Demo 分享Spark
- Hadoop3系列——(八)Java訪問HbaseHadoopJava
- HBase2實戰:HBase Flink和Kafka整合Kafka
- HBase學習之二: hbase分頁查詢
- hbase與phoenix整合(使用phoenix操作hbase資料)
- shell常用的命令
- spark與hbaseSpark
- HBase學習
- HBase vs HiveHive
- HBase進階
- Hbase優化優化
- php使用hbasePHP
- Jave Hbase AP
- HBase 基本操作
- Hadoop大資料實戰系列文章之HBaseHadoop大資料
- 《HBase 不睡覺》第三章 – HBase 基本操作
- 《HBase 不睡覺》第三章 - HBase 基本操作
- HBase入門教程
- Hbase基礎篇
- kafka+storm+hbaseKafkaORM