CGFT知識點(diǎn):HBase常用的Shell命令。HBase為用戶提供了*方便的Shell命令,通過這些命令我們可以很方便地對表、列族、列等進(jìn)行操作。這里介紹一些常用的Shell命令以及具體的操作實(shí)例。

首先,我們需要啟動HDFS和HBase進(jìn)程,然后,在終端輸入“hbase shell”命令進(jìn)入該Shell環(huán)境,輸入“help”,可以查看HBase支持的所有Shell命令(見表4-7)。

ACCA考試

接下來,我們將詳細(xì)介紹常用的ddl和dml命令,對于其他命令,讀者可以在終端輸入"help'command""命令,來獲知該命令的作用及其具體語法。

1.create:創(chuàng)建表

①創(chuàng)建表t1,列族為n,列族版本號為5,命令如下。

hbase> ereate't1',{NAME=>'f1',VERSIONS=>5}

②創(chuàng)建表t1,3個列族分別為f1、f2、f3,命令如下。

hbase>create't1',(NAME=>'f1'},{NAME=>'f2'},{NAME=>'f3'}

或者使用如下等價的命令。

hbase>create't1','f1','f2','f3'

③創(chuàng)建表t1,將表依據(jù)分割算法HexStringSplit分布在15個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中所有的表信息

該命令比較簡單,這里不做具體說明

3.put:向表、行、列指定的單元格添加數(shù)據(jù)

向表日中行rowl,列f1:1,添加數(shù)據(jù)valuel,時間截為1421822284898,命令如下。

hbasey>put't1','rowl','f1:1','value1',1421822284898

cgft

4.get:通過指定表名、行、列、時間截、時間范圍和版本號來獲得相應(yīng)單元格的值

①獲得表t1,行rl,列c1,時間范圍為[tsl,ts2],版本號為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)信息

可以通過TIMERANGE、FILTER、LIMIT、STARTROW、STOPROW、TIMESTAMP、MAXLENGTH、COLUMNS、CACHE來限定所需要瀏覽的數(shù)據(jù)。

①瀏覽表“,META.”,列info:regioninfo上的數(shù)據(jù),命令如下。

hbase>scan'.META.',{COLUMNS=>'info:regioninto'}

②瀏覽表日,列c1,時間范圍為[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)計表中的行數(shù)

該命令比較簡單,這里不做具體說明。

8.deccribe:顯示表的相關(guān)信息

該命令比較簡單,這里不做具體說明。

9.enable/disable:使表有效或無效

該命令比較簡單,這里不做具體說明。

10.delete:刪除指定單元格的數(shù)據(jù)

刪除表t1,行rl,列c1,時間截為tsl上的數(shù)據(jù),命令如下。

hbase>delete't1','r1','c1',tsl

11.drop:刪除表

該命令比較簡單,這里不做具體說明。需要指出的是,刪除某個表之前,必須先使該表無效。

12.exists:判斷表是否存在

該命令比較簡單,這里不做具體說明

13.truncate:使表無效,刪除該表,然后重新建立表

該命令比較簡單,這里不做具體說明

14.exit:退出HBase Shell

該命令比較簡單,這里不做具體說明

15.shutdown:關(guān)閉HBase集群

該命令比較簡單,這里不做具體說明

16.version:輸出HBase版本信息

該命令比較簡單,這里不做具體說明

17.status:輸出HBase集群狀態(tài)信息

可以通過summary,simple或者detailed這3個參數(shù)指定輸出信息的詳細(xì)程度。

輸出集群詳細(xì)狀態(tài)信息,命令如下:

hbase>status'detalled'