我是在hadoop1.2.1版本的基礎上安裝0.98.6版本的hbase。
安裝步驟前面和安裝HBase單機模式是一樣的
(可參考我的另一篇文章:
http://blog.csdn.net/zhangxbj/article/details/40112529)
假設已經裝好了hadoop1.2.1,然後我們現在就下載下傳hbase-0.98.6.1-hadoop1-bin.tar.gz
假如hadoop的安裝目錄為/usr/hadoop/hadoop-1.2.1, 并計劃将HBase安裝在/usr/hadoop下,首先下載下傳穩定版的HBase安裝包并解壓到/usr/hadoop目錄下面。
$ tar xfz hbase-0.98.6.1-hadoop1-bin.tar.gz
$ mv hbase-0.98.6.1-hadoop1-bin /usr/hadoop
之後把/usr/hadoop目錄下的hbase-0.98.6.1-hadoop1-bin檔案夾右鍵重命名為hbase-0.98.6,友善後面操作而已。
安裝hbase前的配置檔案修改
1)進入解壓後的hbase檔案夾,進入conf目錄編輯hbase-env.sh檔案,啟用配置檔案内這三項配置,去掉前面的“#”号,再修改配置就行了,具體如下:
export JAVA_HOME=/usr/local/lib/jdk1.7.0_67 (設定本機jdk安裝目錄,這裡是我本機的路徑)
export HBASE_Classpath=/home/hadoop/usr/hadoop/hadoop-1.2.1/conf (指定本機hadoop安裝的配置檔案所在的目錄,這裡是我本機的路徑)
export HBASE_MANAGES_ZK=true
(值預設是true作用是讓Hbase啟動的時候同時也啟動zookeeper,讓Hbase使用一個現有的不被Hbase托管的Zookeep叢集,需要設定為 false)
2)接着修改conf目錄下的hbase-site.xml檔案,添加如下配置内容:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value> (這裡要和hadoop配置的一樣)
</property>
hbase.rootdir屬性解釋:這裡用來設定region server的共享目錄,用來持久化Hbase。URL需要是'完全正确'的,還要包含檔案系統的scheme。例如,要表示hdfs中的'/hbase'目錄,namenode 運作在node1的9090端口。則需要設定為hdfs://node1:49002/hbase。預設情況下Hbase是寫到/tmp的。不改這個配置,資料會在重新開機的時候丢失。預設: file:///tmp/hbase-${user.name}/hbase
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
hbase.cluster.distributed屬性解釋:Hbase的運作模式。false是單機模式,true是分布式模式。若為false,Hbase和Zookeeper會運作在同一個JVM裡面。預設: false
<property>
<name>dfs.replication</name>
<value>1</value> (僞分布設定為1)
</property>
3)讓hbase0.98.6支援hadoop1.2.1(可以省略,0.98.6完美支援hadoop1.2.1,如果是其他版本hbase可能需要這步)
将hadoop主目錄下的hadoop-core-1.2.1.jar檔案複制到hbase/lib目錄下去,将hbase/lib 目錄下老得hadoop-core-1.0.4.jar檔案删除
再将hadoop/lib目錄下的commons-collections-3.2.1.jar和commons-configuration-1.6.jar檔案複制到hbase/lib目錄下去。
4)啟動hbase
進入hbase的解壓目錄下的bin檔案夾,執行start-hbase.sh腳本或者在linux下執行shell指令
# cd /home/hbase/bin
# start-hbase.sh
(啟動hbase時如果報錯,說明hbase沒有安裝正确,可能是配置檔案沒有配好,請仔細檢查配置檔案)
啟動完成,我們可以輸入指令來驗證需要的服務程序是否都起來了。輸入指令:
# /usr/local/lib/jdk1.7.0_67/bin/jps