1. 程式人生 > >3.HBase_基礎應用Shell

3.HBase_基礎應用Shell

我使用Ambari安裝的Hadoop叢集及擴充套件元件,其中包括:HDFS、MR、Yarn、ZK、Hive、HBase等。後續有時間會補上Ambari和CDH安裝管理Hadoop叢集的博文。

1.開啟HBase Server

因為HBase資料儲存在HDFS上,元資料由ZK管理。因此,首先在Ambari管理頁面開啟HDFS、ZK、HBase服務(其他服務就不打開了,電腦記憶體消耗太大)。

也可以通過命令開啟服務:

# 開啟HBase HMaster
$ /usr/bin/hbase master

# 開啟HBase HRegion Server
$ /usr/bin/hbase regionserver

2.開啟HBase客戶端

# 由於我是Ambari安裝的,所以儘量去hbase使用者下操作
$ su hbase

# 開啟客戶端
$ /usr/bin/hbase shell
hbase(main):010:0>

3.檢視所有的表

hbase(main):001:0> list
TABLE                                                                               
0 row(s) in 0.7970 seconds

=> []

4.建立名稱空間

hbase(main):002:0> create_namespace 'lv'
0 row(s) in 1.6850 seconds

5.建立表

hbase(main):003:0> create 'lv:emp','info'
0 row(s) in 8.5390 seconds

=> Hbase::Table - lv:emp
hbase(main):004:0> list
TABLE                                                                         
lv:emp                                                         
1 row(s) in 0.0130 seconds

=> ["lv:emp"]

6.查看錶描述

hbase(main):012:0> describe 'lv:emp'
Table lv:emp is ENABLED                                                     
lv:emp                                                                    
COLUMN FAMILIES DESCRIPTION                
{NAME => 'info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', 
 REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', 
 TTL => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', 
 IN_MEMORY => 'false', BLOCKCACHE => 'true'}                                      
1 row(s) in 0.5170 seconds

7.增加列族

# 新增列族
hbase(main):014:0> alter 'lv:emp',NAME=>'extra'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 39.7940 seconds

8.刪除列族

hbase(main):017:0> alter 'lv:emp','delete'=>'extra'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 4.6710 seconds

9.插入資料

hbase(main):006:0> put 'lv:emp','10001','info:name','Tom'
0 row(s) in 0.5850 seconds

hbase(main):007:0> put 'lv:emp','10001','info:age',22
0 row(s) in 0.1350 seconds

hbase(main):008:0> scan 'lv:emp'
ROW                                COLUMN+CELL                                            
 10001                             column=info:age, timestamp=1540313386407, value=22     
 10001                             column=info:name, timestamp=1540313372985, value=Tom   
1 row(s) in 0.1750 seconds

10.查詢資料

# 根據RowKey掃描
scan 'lv:emp','10001'

# 全表掃描
scan 'lv:emp'

# 取前兩條
scan 'lv:emp',{LIMIT => 2}

# 範圍掃描
scan 'lv:emp',{STARTROW  => '10007'}
scan 'lv:emp',{STARTROW  => '10007',ENDROW  => '10009'}

11.統計表記錄數

hbase(main):020:0> count 'lv:emp'
1 row(s) in 0.5160 seconds

=> 1

12.刪除資料

# 刪除列
hbase(main):008:0> delete 'lv:emp', '10001', 'info:age'
0 row(s) in 0.0290 seconds

# 刪除整行
hbase(main):014:0> deleteall 'lv:emp', '10001'
0 row(s) in 0.0090 seconds

# 刪除表中所有資料
hbase(main):016:0> truncate 'lv:emp'

13.管理表

# 禁用表
hbase(main):020:0> disable 'lv:emp'

# 啟用表
hbase(main):020:0> enable 'lv:emp'

# 判斷是否存在
hbase(main):020:0> exists 'lv:emp'

# 刪除表
hbase(main):020:0> disable 'lv:emp'
hbase(main):020:0> drop 'lv:emp'