ubuntu14.04安裝hbase和經常使用命令

hbase安裝
0. 簡介

  HBase是一個分佈式的、面向列的開源數據庫,源於google的一篇論文《bigtable:一個結構化數據的分佈式存儲系統》。HBase是Google Bigtable的開源實現,它利用Hadoop HDFS做爲其文件存儲系統,利用Hadoop MapReduce來處理HBase中的海量數據,利用Zookeeper做爲協同服務。
hbase安裝相對簡單,就是把其整合hadoop
1.解壓

tar -zxvf hbase-1.0.0-bin.tar.gz
sudo mv hbase-1.0.0 /opt/hbase
cd /opt
sudo chmod -R 775 hbase
sudo chown -R coco:coco: hbase

2.修改環境變量
sudo vim /opt/hbase/conf/hbase-env.sh
修改$JAVA_HOME爲jdk安裝目錄
3.修改hbase-site.xml
添加:

<configuration>
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://localhost:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
</configuration>

4.啓動hbase
start-hbase.sh
5.進入hbase shell
hbase shell
6.查看進程
經過jps,應該會看到一共有9個進程,分別以下:

3616 NodeManager
3008 NameNode
6945 HQuorumPeer
7010 HMaster
3302 SecondaryNameNode
3128 DataNode
7128 HRegionServer
3496 ResourceManager
7209 Jps
進程號不必定是這些
若是在啓動後用list命令出現錯誤:ERROR: Can't get master address from ZooKeeper; znode data == null
請必定要記得hadoop的服務是否已經啓動了,因此必定要先啓動hadoop服務,才能啓動HBASE。

7. HBase shell的基本用法

  hbase提供了一個shell的終端給用戶交互。經過執行 help get 能夠看到命令的幫助信息。
  (1) 創建一個表格scores  具備兩個列族grad 和courese
hbase(main):001:0> create'scores','grade', 'course'
0 row(s) in 0.4780 seconds

  (2) 查看當前HBase中具備哪些表
hbase(main):002:0> list
TABLE                                                                                                                                                                                         
scores                                                                                                                                                                               
1 row(s) in 0.0270 seconds

  (3) 查看錶的構造
hbase(main):004:0> describe'scores'
DESCRIPTION                                                 ENABLED                                               
 {NAME => 'scores', FAMILIES => [{NAME =>'course', BLOOMFILTER => 'NONE', REPLICATION_SCOPE =>'0',  true                                                  
 COMPRESSION => 'NONE', VERSIONS =>'3', TTL => '2147483647', BLOCKSIZE =>'65536', IN_MEMORY => 'fal                                                       
 se', BLOCKCACHE => 'true'}, {NAME => 'grade', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', COMPR                                                       
 ESSION => 'NONE', VERSIONS => '3', TTL => '2147483647', BLOCKSIZE =>'65536', IN_MEMORY => 'false',                                                        
 BLOCKCACHE => 'true'}]}                                                                                                                                    
1 row(s) in 0.0390 seconds

  (4) 加入一行數據,行名稱爲zkb 列族grad的列名爲」」 值位5
hbase(main):006:0> put'scores','zkb','grade:','5'       
0 row(s) in 0.0420 seconds

  (5) 給zkb這一行的數據的列族course添加一列<math,97>
hbase(main):007:0> put'scores','zkb','course:math','97'
0 row(s) in 0.0270 seconds

  (6) 給zkb這一行的數據的列族course添加一列<art,87>
hbase(main):008:0> put'scores','zkb','course:art','87'
0 row(s) in 0.0260 seconds

  (7) 加入一行數據,行名稱爲baoniu 列族grad的列名爲」」 值爲4
hbase(main):009:0> put'scores','baoniu','grade:','4'    
0 row(s) in 0.0260 seconds

  (8) 給baoniu這一行的數據的列族course添加一列<math,89>
hbase(main):010:0> put'scores','baoniu','course:math','89'
0 row(s) in 0.0270 seconds

  (9) 給Jerry這一行的數據的列族course添加一列<art,80>
hbase(main):011:0> put'scores','baoniu','course:art','80'
0 row(s) in 0.0270 seconds

  (10) 查看scores表中zkb的相關數據
hbase(main):012:0> get'scores','zkb'
COLUMN                     CELL                                                                                                               
 course:art                              timestamp=1316100110921, value=87                                                                                  
 course:math                             timestamp=1316100025944, value=97                                                                                  
 grade:                                  timestamp=1316099975625, value=5                                                                                   
3 row(s) in 0.0480 seconds

  (11) 查看scores表中全部數據

  注意:scan命令能夠指定startrow,stoprow來scan多個row,例如:scan 'user_test',{COLUMNS =>'info:username',LIMIT =>10, STARTROW => 'test',STOPROW=>'test2'}
hbase(main):013:0> scan'scores'
ROW                        COLUMN+CELL                                                                                                        
 baoniu                                  column=course:art, timestamp=1316100293784, value=80                                                               
 baoniu                                  column=course:math, timestamp=1316100234410, value=89                                                              
 baoniu                                  column=grade:, timestamp=1316100178609, value=4                                                                    
 zkb                                     column=course:art, timestamp=1316100110921, value=87                                                               
 zkb                                     column=course:math, timestamp=1316100025944, value=97                                                              
 zkb                                     column=grade:, timestamp=1316099975625, value=5                                                                    
2 row(s) in 0.0470 seconds

  (12) 查看scores表中全部數據courses列族的全部數據
hbase(main):017:0> scan'scores',{COLUMNS => 'course'}
ROW                        COLUMN+CELL                                                                                                        
 baoniu                                  column=course:art, timestamp=1316100293784, value=80                                                               
 baoniu                                  column=course:math, timestamp=1316100234410, value=89                                                              
 zkb                                     column=course:art, timestamp=1316100110921, value=87                                                               
 zkb                                     column=course:math, timestamp=1316100025944, value=97                                                              
2 row(s) in 0.0350 seconds

  (13) 刪除scores表
hbase(main):024:0> disable'scores'
0 row(s) in 0.0330 seconds
 
hbase(main):025:0> drop'scores'   
0 row(s) in 1.0840 seconds

  總結下,hbase shell經常使用的操做命令有create,describe,disable,drop,list,scan,put,get,delete,deleteall,count,status等,經過help能夠看到詳細的用法。


node

相關文章
相關標籤/搜索