安裝環境: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?
- cd /opt
- tar zxvf hbase-0.90.4.tar.gz
- 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?
- vim ~/.bashrc
- export HBASE_HOME=/opt/hbase-0.90.4 #根據自己的jdk安裝目錄設定
- 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?
- # The java implementation to use. Java 1.6 required.
- 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?
- <configuration>
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://localhost:9000/hbase</value>
- </property>
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- </property>
- <property>
- <name>hbase.master</name>
- <value>localhost:60000</value>
- </property>
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>localhost</value>
- </property>
- </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?
- <pre name="code" class="html">$start-all.sh #啟動hadoop
- $jps #查看hadoop啟動情況,確認DataNode,SecondaryNameNode,DataNode,JobTracker,TaskTracker全部啟動
- 31557 DataNode
- 31432 NameNode
- 31902 TaskTracker
- 31777 JobTracker
- 689 Jps
- 31683 SecondaryNameNode
- $start-hbase.sh #確認hadoop完全啟動後啟動hbase
- $jps #查看hbase啟動情況,確認HQuorumPeer,HMaster,HRegionServer全部啟動
- 31557 DataNode
- 806 HQuorumPeer
- 31432 NameNode
- 853 HMaster
- 31902 TaskTracker
- 950 HRegionServer
- 1110 Jps
- 31777 JobTracker
- 31683 SecondaryNameNode
- $ hbase #查看hbase命令
- Usage: hbase <command>
- where <command> is one of:
- shell run the HBase shell
- zkcli run the ZooKeeper shell
- master run an HBase HMaster node
- regionserver run an HBase HRegionServer node
- zookeeper run a Zookeeper server
- rest run an HBase REST server
- thrift run an HBase Thrift server
- avro run an HBase Avro server
- migrate upgrade an hbase.rootdir
- hbck run the hbase 'fsck' tool
- classpath dump hbase CLASSPATH
- or
- CLASSNAME run the class named CLASSNAME
- Most commands print help when invoked w/o parameters.
-
- $hbase shell #啟動hbase shell
- HBase Shell; enter 'help<RETURN>' for list of supported commands.
- Type "exit<RETURN>" to leave the HBase Shell
- Version 0.90.4, r1150278, Sun Jul 24 15:53:29 PDT 2011
-
- 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?
- hbase(main):001:0> create 'test','data' #建立一個名為‘test’的表,包含一個名為‘data’的列
- 0 row(s) in 2.0960 seconds
-
- hbase(main):002:0> list #輸出使用者空間所有表,驗證表是否建立成功
- TABLE
- test
- 1 row(s) in 0.0220 seconds
- # 在列族data上的不同行和列插入三項資料
- hbase(main):003:0> put 'test','row1','data:1','value1'
- 0 row(s) in 0.2970 seconds
-
- hbase(main):004:0> put 'test','row2','data:2','value2'
- 0 row(s) in 0.0120 seconds
-
- hbase(main):005:0> put 'test','row3','data:3','value3'
- 0 row(s) in 0.0180 seconds
-
- hbase(main):006:0> scan 'test' #查看資料插入結果
- ROW COLUMN+CELL
- row1 column=data:1, timestamp=1330923873719, value=value1
- row2 column=data:2, timestamp=1330923891483, value=value2
- row3 column=data:3, timestamp=1330923902702, value=value3
- 3 row(s) in 0.0590 seconds
-
- hbase(main):007:0> disable 'test' #禁用表test
- 0 row(s) in 2.0610 seconds
-
- hbase(main):008:0> drop 'test' #刪除表test
- 0 row(s) in 1.2120 seconds
-
- hbase(main):009:0> list #確認表test被刪除
- TABLE
- 0 row(s) in 0.0180 seconds
-
- 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?
- $stop-hbase.sh
- stopping hbase......
- localhost: stopping zookeeper.
$stop-hbase.sh<br />stopping hbase......<br />localhost: stopping zookeeper.6.查看hdfs目錄,你會發現在根目錄下多了一個hbase的目錄
[html]
view plaincopyprint?
- $ hadoop fs -ls /
- Found 4 items
- drwxr-xr-x - hadoop supergroup 0 2012-03-05 13:05 /hbase #hbase組建目錄
- drwxr-xr-x - hadoop supergroup 0 2012-02-24 17:55 /home
- drwxr-xr-x - hadoop supergroup 0 2012-03-04 20:44 /tmp
- 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的配置一致即可。