HBase Shell常用的命令
場(chǎng)景
HBase在CentOS上分布集群安裝:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119511593
在上面搭建起來(lái)HBase的分布集群環(huán)境后,看下HBase Shell的常用命令。
前面我們已經(jīng)用到HBase Shell命令:status和exit。HBase shell命令又分為
幾個(gè)組,輸入:help "cmd",可查看所有分組及其包含的命令,如果需要了解具體命令
的用法,將參數(shù)“cmd”換成具體命令即可,如:help"status"。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
1、創(chuàng)建表:create
create '表名稱','列名稱1','列名稱2'
示例:
create 'scores','grade','course'2、查看所有表:list
使用list命令可以查看當(dāng)前HBase數(shù)據(jù)庫(kù)中所有表
list3、查看表中所有列族的詳細(xì)信息:describe
語(yǔ)法:describe '表名'
列族描述信息的具體含義
上面創(chuàng)建scores表的語(yǔ)法為簡(jiǎn)寫,完整寫法如下
create 'scores',{NAME=>'grade',VERSION=>5},{NAME=>'course',VERSION=5}??? 對(duì)比前面的方式,此命令指定了列族名稱及可保存的單元時(shí)間版本最大數(shù)量。可以
看出,指定列族參數(shù)的格式為:參數(shù)名=>參數(shù)值,注意賦值符號(hào)為“=>”且參數(shù)名必
須大寫。如果指定了多個(gè)參數(shù),應(yīng)以逗號(hào)分開,最后所有參數(shù)以“{}”括起來(lái)表示一個(gè)
列族。
4、添加數(shù)據(jù):put
語(yǔ)法:put '表名稱','行鍵','列鍵','值'
示例:
hbase:013:0> put 'scores','badao','grade:','1' Took 0.0305 seconds??????????????????????????????????????????????????????????????????????????????????????????????????? hbase:014:0> put 'scores','tom','course:art','80' Took 0.0178 seconds??????????????????????????????????????????????????????????????????????????????????????????????????? hbase:015:0> put 'scores','tom','course:math','88' Took 0.0406 seconds??????????????????????????????????????????????????????????????????????????????????????????????????? hbase:016:0> put 'scores','tom','grade','2' Took 0.0203 seconds??????????????????????????????????????????????????????????????????????????????????????????????????? hbase:017:0> put 'scores','badao','course:art','86' Took 0.0157 seconds??????????????????????????????????????????????????????????????????????????????????????????????????? hbase:018:0> put 'scores','badao','course:math','85' Took 0.0297 seconds??????????????????????????????????????????????????????????????????????????????????????????????????? hbase:019:0>5、掃描表:scan
scan用于進(jìn)行全表單元掃描
語(yǔ)法:scan'表名稱',{COLUMNS=>['列族名1','列族名2'],參數(shù)名=>參數(shù)值}
大括號(hào)內(nèi)的內(nèi)容為掃描條件,如不指定則查詢所有的數(shù)據(jù)
scan'scores'
輸出結(jié)果顯示共2行數(shù)據(jù),因?yàn)樵趕can的結(jié)果中,將相同行鍵的所有單元視為一行。?
如果對(duì)有些列族不關(guān)心,便可指定只查詢某個(gè)列族。
scan 'scores',{COLUMNS=>'course'}將COLUMNS替換成COLUMN,表示查詢某個(gè)列鍵,下面掃描所有行的列鍵為course:math的單元并使用LIMIT參數(shù)限制只輸出一個(gè)。
scan'scores',{COLUMN=>'course:math',LIMIT=>1}?
6、獲取數(shù)據(jù):get
get用于獲取行的所有單元或者某個(gè)指定的單元
語(yǔ)法:
get’表名稱','行鍵',{COLUMNS=>[‘列族名','列族名2'],參數(shù)名=>參數(shù)值}
get’表名稱','行鍵',{COLUMN=>[‘列鍵1','列鍵2'],參數(shù)名=>參數(shù)值}
與scan相比多一個(gè)行鍵參數(shù)。scan查找的目標(biāo)是全表的某個(gè)列族、列鍵,而get
查找的目標(biāo)是某行的某個(gè)列族、列鍵。
例如:查找行鍵為badao的所有單元
get 'scores','badao'例如:查找行鍵為badao,列鍵為course:math的單元
get 'scores','badao',{COLUMN=>'course:math'}7、刪除數(shù)據(jù):delete
語(yǔ)法:
delete '表名稱','行鍵','列鍵'
deleteall '表名稱','行鍵'
delete只能刪除一個(gè)單元,而deleteall能刪除一行。
示例:
delete 'scores','tom','course:art'8、修改表
使用alter可為表增加或修改列族
語(yǔ)法:alter '表名稱',參數(shù)名=>參數(shù)值,...
其中列族名參數(shù)NAME必須提供,如果已存在則修改,否則會(huì)增加一個(gè)列族。
將scores表的列族course的VERSIONS參數(shù)修改為5示例:
alter 'scores',NAME=>'course',VERSIONS=>'5'同時(shí)修改或增加多個(gè)列族時(shí)應(yīng)以逗號(hào)分開,并且每個(gè)列族用{}括起來(lái)。
示例:
alter 'scores',{NAME=>'grade',VERSIONS=>'5'},{NAME='course',VERSIONS= >'5'}9、刪除表:drop
HBase表分為兩種狀態(tài):ENABLED和DISABLED,分別表示是否可用。
使用disable將表置為不可用狀態(tài)
disable 'scores'使用enable將表置為可用狀態(tài)
enable 'scores'當(dāng)表為ENABLED狀態(tài)時(shí),會(huì)被禁止刪除。所以必須先將表置為DISABLED狀態(tài)才可被刪除。
總結(jié)
以上是生活随笔為你收集整理的HBase Shell常用的命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HBase在CentOS上分布集群安装
- 下一篇: HBase Java API 创建表时一