3.HBase_基礎應用Shell
阿新 • • 發佈:2018-11-06
我使用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'