CGFT知識(shí)點(diǎn):HBase常用的Shell命令。HBase為用戶提供了*方便的Shell命令,通過(guò)這些命令我們可以很方便地對(duì)表、列族、列等進(jìn)行操作。這里介紹一些常用的Shell命令以及具體的操作實(shí)例。
首先,我們需要啟動(dòng)HDFS和HBase進(jìn)程,然后,在終端輸入“hbase shell”命令進(jìn)入該Shell環(huán)境,輸入“help”,可以查看HBase支持的所有Shell命令(見(jiàn)表4-7)。
接下來(lái),我們將詳細(xì)介紹常用的ddl和dml命令,對(duì)于其他命令,讀者可以在終端輸入"help'command""命令,來(lái)獲知該命令的作用及其具體語(yǔ)法。
1.create:創(chuàng)建表
①創(chuàng)建表t1,列族為n,列族版本號(hào)為5,命令如下。
hbase> ereate't1',{NAME=>'f1',VERSIONS=>5}
②創(chuàng)建表t1,3個(gè)列族分別為f1、f2、f3,命令如下。
hbase>create't1',(NAME=>'f1'},{NAME=>'f2'},{NAME=>'f3'}
或者使用如下等價(jià)的命令。
hbase>create't1','f1','f2','f3'
③創(chuàng)建表t1,將表依據(jù)分割算法HexStringSplit分布在15個(gè)Region里,命令如下。
hbase> create't1','f1', {NUMREGIONS =>15, SPLITALGO => 'HexStringSp1it'}
④創(chuàng)建表t1,指定切分點(diǎn),命令如下。
hbase>create't1','f1',{SPLITS => ['10','20','30','40'1]}
2.list:列出HBase中所有的表信息
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明
3.put:向表、行、列指定的單元格添加數(shù)據(jù)
向表日中行rowl,列f1:1,添加數(shù)據(jù)valuel,時(shí)間截為1421822284898,命令如下。
hbasey>put't1','rowl','f1:1','value1',1421822284898
4.get:通過(guò)指定表名、行、列、時(shí)間截、時(shí)間范圍和版本號(hào)來(lái)獲得相應(yīng)單元格的值
①獲得表t1,行rl,列c1,時(shí)間范圍為[tsl,ts2],版本號(hào)為4的數(shù)據(jù),命令如下。
hbase> get 't1','r1', {COLUMN => 'c1', TIMERANGE " [tsl, ts2], VERSIONS => 4)}
②獲得表日,行rl,列c1和c2上的數(shù)據(jù),命令如下。
hbase> get 't1','rl','c1','c2'
5.scan:瀏覽表的相關(guān)信息
可以通過(guò)TIMERANGE、FILTER、LIMIT、STARTROW、STOPROW、TIMESTAMP、MAXLENGTH、COLUMNS、CACHE來(lái)限定所需要瀏覽的數(shù)據(jù)。
①瀏覽表“,META.”,列info:regioninfo上的數(shù)據(jù),命令如下。
hbase>scan'.META.',{COLUMNS=>'info:regioninto'}
②瀏覽表日,列c1,時(shí)間范圍為[1303668804,1303668904]的數(shù)據(jù),命令如下。
hbase>scan't1',{COLUNNS=>'c1',TIMERANGE
=>[1303668804,1303668904]}
6.alter:修改列族模式
①向表tl添加列族f1,命令如下。
hbase>alter 't1', NAME =>'f1'
②刪除表t1中的列族介,命令如下。
hbase> alter 't1', NAME=>'f1', METHOD => 'delete'
③設(shè)定表t1中列族f1*為128MB,命令如下。
hbase> alter "t1', METHOD => "table_att', MAX_FILESIZE=-> '134217728'
上面命令中,“134217728”表示字節(jié)數(shù),128MB等于134217728字節(jié)。
7.count:統(tǒng)計(jì)表中的行數(shù)
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明。
8.deccribe:顯示表的相關(guān)信息
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明。
9.enable/disable:使表有效或無(wú)效
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明。
10.delete:刪除指定單元格的數(shù)據(jù)
刪除表t1,行rl,列c1,時(shí)間截為tsl上的數(shù)據(jù),命令如下。
hbase>delete't1','r1','c1',tsl
11.drop:刪除表
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明。需要指出的是,刪除某個(gè)表之前,必須先使該表無(wú)效。
12.exists:判斷表是否存在
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明
13.truncate:使表無(wú)效,刪除該表,然后重新建立表
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明
14.exit:退出HBase Shell
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明
15.shutdown:關(guān)閉HBase集群
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明
16.version:輸出HBase版本信息
該命令比較簡(jiǎn)單,這里不做具體說(shuō)明
17.status:輸出HBase集群狀態(tài)信息
可以通過(guò)summary,simple或者detailed這3個(gè)參數(shù)指定輸出信息的詳細(xì)程度。
輸出集群詳細(xì)狀態(tài)信息,命令如下:
hbase>status'detalled'