hbase偽分布式安裝詳解及錯誤分析

來源:互聯網
上載者:User

安裝環境:centos6.0+jdk1.6.0_29+hadoop1.0.0+hbase0.90.4
已經安裝好centos6.0+jdk1.6.0_29+hadoop1.0.0環境

1.到官方網站下載好hbase-0.90.4.tar.gz解壓hbase安裝包到一個可用目錄(如:/opt)

[html]
view plaincopyprint?
  1. cd /opt  
  2. tar zxvf hbase-0.90.4.tar.gz  
  3. chown -R hadoop:hadoop /opt/hbase-0.90.4  

cd /opt<br />tar zxvf hbase-0.90.4.tar.gz<br />chown -R hadoop:hadoop /opt/hbase-0.90.4
2.設定環境變數:

[html]
view plaincopyprint?
  1. vim ~/.bashrc    
  2. export HBASE_HOME=/opt/hbase-0.90.4    #根據自己的jdk安裝目錄設定    
  3. PAHT=$PATH:$HBASE_HOME/bin   

vim ~/.bashrc<br />export HBASE_HOME=/opt/hbase-0.90.4 #根據自己的jdk安裝目錄設定<br />PAHT=$PATH:$HBASE_HOME/bin 3.hbase配置:
在$HBASE_HOME/conf目錄中,根據自己的jdk安裝情況配置好hbase-env.sh中JAVA_HOME,如下所示:

[html]
view plaincopyprint?
  1. # The java implementation to use.  Java 1.6 required.  
  2. export JAVA_HOME=/usr/local/jdk/jdk1.6.0_29  

# The java implementation to use. Java 1.6 required.<br />export JAVA_HOME=/usr/local/jdk/jdk1.6.0_29
在$HBASE_HOME目錄下的conf目錄中,確保hbase-site中的hbase.rootdir的主機和連接埠號碼與$HADOOP_HOME目錄下conf目錄中core-site.xml中的fs.default.name的主機和連接埠號碼一致,添加如下內容:

[html]
view plaincopyprint?
  1. <configuration>  
  2. <property>  
  3.  <name>hbase.rootdir</name>  
  4.  <value>hdfs://localhost:9000/hbase</value>  
  5. </property>  
  6. <property>  
  7.  <name>hbase.cluster.distributed</name>  
  8.  <value>true</value>  
  9. </property>  
  10. <property>  
  11. <name>hbase.master</name>  
  12. <value>localhost:60000</value>  
  13. </property>  
  14. <property>  
  15.  <name>hbase.zookeeper.quorum</name>  
  16.  <value>localhost</value>  
  17. </property>  
  18. </configuration>  

<configuration><br /><property><br /> <name>hbase.rootdir</name><br /> <value>hdfs://localhost:9000/hbase</value><br /></property><br /><property><br /> <name>hbase.cluster.distributed</name><br /> <value>true</value><br /></property><br /><property><br /><name>hbase.master</name><br /><value>localhost:60000</value><br /></property><br /><property><br /> <name>hbase.zookeeper.quorum</name><br /> <value>localhost</value><br /></property><br /></configuration>

3.先啟動hadoop,再啟動hbase:

[html]
view plaincopyprint?
  1. <pre name="code" class="html">$start-all.sh        #啟動hadoop  
  2. $jps                 #查看hadoop啟動情況,確認DataNode,SecondaryNameNode,DataNode,JobTracker,TaskTracker全部啟動  
  3. 31557 DataNode  
  4. 31432 NameNode  
  5. 31902 TaskTracker  
  6. 31777 JobTracker  
  7. 689 Jps  
  8. 31683 SecondaryNameNode  
  9. $start-hbase.sh       #確認hadoop完全啟動後啟動hbase  
  10. $jps                  #查看hbase啟動情況,確認HQuorumPeer,HMaster,HRegionServer全部啟動  
  11. 31557 DataNode  
  12. 806 HQuorumPeer  
  13. 31432 NameNode  
  14. 853 HMaster  
  15. 31902 TaskTracker  
  16. 950 HRegionServer  
  17. 1110 Jps  
  18. 31777 JobTracker  
  19. 31683 SecondaryNameNode  
  20. $ hbase               #查看hbase命令  
  21. Usage: hbase <command>  
  22. where <command> is one of:  
  23.   shell            run the HBase shell  
  24.   zkcli            run the ZooKeeper shell  
  25.   master           run an HBase HMaster node  
  26.   regionserver     run an HBase HRegionServer node  
  27.   zookeeper        run a Zookeeper server  
  28.   rest             run an HBase REST server  
  29.   thrift           run an HBase Thrift server  
  30.   avro             run an HBase Avro server  
  31.   migrate          upgrade an hbase.rootdir  
  32.   hbck             run the hbase 'fsck' tool  
  33.   classpath        dump hbase CLASSPATH  
  34.  or  
  35.   CLASSNAME        run the class named CLASSNAME  
  36. Most commands print help when invoked w/o parameters.  
  37.   
  38. $hbase shell                    #啟動hbase shell  
  39. HBase Shell; enter 'help<RETURN>' for list of supported commands.  
  40. Type "exit<RETURN>" to leave the HBase Shell  
  41. Version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011  
  42.   
  43. hbase(main):001:0>  

<pre name="code" class="html">$start-all.sh #啟動hadoop<br />$jps #查看hadoop啟動情況,確認DataNode,SecondaryNameNode,DataNode,JobTracker,TaskTracker全部啟動<br />31557 DataNode<br />31432 NameNode<br />31902 TaskTracker<br />31777 JobTracker<br />689 Jps<br />31683 SecondaryNameNode<br />$start-hbase.sh #確認hadoop完全啟動後啟動hbase<br />$jps #查看hbase啟動情況,確認HQuorumPeer,HMaster,HRegionServer全部啟動<br />31557 DataNode<br />806 HQuorumPeer<br />31432 NameNode<br />853 HMaster<br />31902 TaskTracker<br />950 HRegionServer<br />1110 Jps<br />31777 JobTracker<br />31683 SecondaryNameNode<br />$ hbase #查看hbase命令<br />Usage: hbase <command><br />where <command> is one of:<br /> shell run the HBase shell<br /> zkcli run the ZooKeeper shell<br /> master run an HBase HMaster node<br /> regionserver run an HBase HRegionServer node<br /> zookeeper run a Zookeeper server<br /> rest run an HBase REST server<br /> thrift run an HBase Thrift server<br /> avro run an HBase Avro server<br /> migrate upgrade an hbase.rootdir<br /> hbck run the hbase 'fsck' tool<br /> classpath dump hbase CLASSPATH<br /> or<br /> CLASSNAME run the class named CLASSNAME<br />Most commands print help when invoked w/o parameters.</p><p>$hbase shell #啟動hbase shell<br />HBase Shell; enter 'help<RETURN>' for list of supported commands.<br />Type "exit<RETURN>" to leave the HBase Shell<br />Version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011</p><p>hbase(main):001:0>



hbase啟動可能會出錯導致失敗(我在hadoop0.20.203.0環境下搭hbase0.90.4就出現過這種問題,hadoop1.0.0沒測試,直接做了下面的步驟),這時需要將$HADOOP_HOME目錄下的hadoop-core-1.0.0.jar和$HADOOP_HOME/lib目錄下的commons-configuration-1.6.jar拷貝到$HBASE_HOME/lib目錄下,刪除$HBASE_HOME/lib目錄下的hadoop-core-0.20-append-r1056497.jar,避免版本衝突和不相容。

4.練習hbase shell

[html]
view plaincopyprint?
  1. hbase(main):001:0> create 'test','data'   #建立一個名為‘test’的表,包含一個名為‘data’的列  
  2. 0 row(s) in 2.0960 seconds  
  3.   
  4. hbase(main):002:0> list              #輸出使用者空間所有表,驗證表是否建立成功  
  5. TABLE                                                                             
  6. test                                                                              
  7. 1 row(s) in 0.0220 seconds  
  8. # 在列族data上的不同行和列插入三項資料  
  9. hbase(main):003:0> put 'test','row1','data:1','value1'    
  10. 0 row(s) in 0.2970 seconds  
  11.   
  12. hbase(main):004:0> put 'test','row2','data:2','value2'  
  13. 0 row(s) in 0.0120 seconds  
  14.   
  15. hbase(main):005:0> put 'test','row3','data:3','value3'  
  16. 0 row(s) in 0.0180 seconds  
  17.   
  18. hbase(main):006:0> scan 'test'    #查看資料插入結果  
  19. ROW                   COLUMN+CELL                                                 
  20.  row1                 column=data:1, timestamp=1330923873719, value=value1        
  21.  row2                 column=data:2, timestamp=1330923891483, value=value2        
  22.  row3                 column=data:3, timestamp=1330923902702, value=value3        
  23. 3 row(s) in 0.0590 seconds  
  24.   
  25. hbase(main):007:0> disable 'test'    #禁用表test  
  26. 0 row(s) in 2.0610 seconds  
  27.   
  28. hbase(main):008:0> drop 'test'      #刪除表test  
  29. 0 row(s) in 1.2120 seconds  
  30.   
  31. hbase(main):009:0> list             #確認表test被刪除  
  32. TABLE                                                                             
  33. 0 row(s) in 0.0180 seconds  
  34.   
  35. hbase(main):010:0> quit            #退出hbase shell  

hbase(main):001:0> create 'test','data' #建立一個名為‘test’的表,包含一個名為‘data’的列<br />0 row(s) in 2.0960 seconds</p><p>hbase(main):002:0> list #輸出使用者空間所有表,驗證表是否建立成功<br />TABLE<br />test<br />1 row(s) in 0.0220 seconds<br /># 在列族data上的不同行和列插入三項資料<br />hbase(main):003:0> put 'test','row1','data:1','value1'<br />0 row(s) in 0.2970 seconds</p><p>hbase(main):004:0> put 'test','row2','data:2','value2'<br />0 row(s) in 0.0120 seconds</p><p>hbase(main):005:0> put 'test','row3','data:3','value3'<br />0 row(s) in 0.0180 seconds</p><p>hbase(main):006:0> scan 'test' #查看資料插入結果<br />ROW COLUMN+CELL<br /> row1 column=data:1, timestamp=1330923873719, value=value1<br /> row2 column=data:2, timestamp=1330923891483, value=value2<br /> row3 column=data:3, timestamp=1330923902702, value=value3<br />3 row(s) in 0.0590 seconds</p><p>hbase(main):007:0> disable 'test' #禁用表test<br />0 row(s) in 2.0610 seconds</p><p>hbase(main):008:0> drop 'test' #刪除表test<br />0 row(s) in 1.2120 seconds</p><p>hbase(main):009:0> list #確認表test被刪除<br />TABLE<br />0 row(s) in 0.0180 seconds</p><p>hbase(main):010:0> quit #退出hbase shell<br />5.停止hbase執行個體:

[html]
view plaincopyprint?
  1. $stop-hbase.sh   
  2. stopping hbase......  
  3. localhost: stopping zookeeper.  

$stop-hbase.sh<br />stopping hbase......<br />localhost: stopping zookeeper.6.查看hdfs目錄,你會發現在根目錄下多了一個hbase的目錄

[html]
view plaincopyprint?
  1. $ hadoop fs -ls /  
  2. Found 4 items  
  3. drwxr-xr-x   - hadoop supergroup          0 2012-03-05 13:05 /hbase   #hbase組建目錄  
  4. drwxr-xr-x   - hadoop supergroup          0 2012-02-24 17:55 /home  
  5. drwxr-xr-x   - hadoop supergroup          0 2012-03-04 20:44 /tmp  
  6. drwxr-xr-x   - hadoop supergroup          0 2012-03-04 20:47 /user  

$ hadoop fs -ls /<br />Found 4 items<br />drwxr-xr-x - hadoop supergroup 0 2012-03-05 13:05 /hbase #hbase組建目錄<br />drwxr-xr-x - hadoop supergroup 0 2012-02-24 17:55 /home<br />drwxr-xr-x - hadoop supergroup 0 2012-03-04 20:44 /tmp<br />drwxr-xr-x - hadoop supergroup 0 2012-03-04 20:47 /user

 

如果啟動hbase時無法啟動HRegionServer的話,請修改$HBASE_HOME/conf下的regionservers檔案,將內容改成你hadoop運行主機的名字,只要和hadoop的配置一致即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.