Hbase安裝模式介紹
單機模式
1> Hbase不使用HDFS,僅使用本地文件系統
2> ZooKeeper與Hbase運行在同一個JVM中
分佈式模式
– 僞分佈式模式
1> 所有進程運行在同一個節點上,不同進程運行在不同的JVM當中
2> 比較適合實驗測試
– 完全分佈式模式
1> 進程運行在多個服務器集羣中
2> 分佈式依賴於HDFS系統,因此佈署Hbase之前一定要有一個正常工作的HDFS集羣,hbase版本需與hadoop版本兼容,關於hbase和hadoop的版本對應信息,可參考官檔的說明
http://hbase.apache.org/book/configuration.html#basic.prerequisites
單機hbase環境
Linux環境準備
關閉防火牆和SELinux
# service iptables stop
# chkconfig iptables off
# vim /etc/sysconfig/selinux
SELINUX=disabled
配置主機名及主機名綁定
# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hbase
# vim /etc/hosts
192.168.0.30 hbase
Hbase的安裝部署
下載地址:http://pan.baidu.com/s/1c1YkCV2 密碼:nz3c
在這裏,下載的是1.2.6版本
解壓到指定目錄
# tar xvf hbase-1.2.6-bin.tar.gz -C /usr/local/
# cd /usr/local/hbase-1.2.6/
配置Hbase
# vim conf/hbase-env.sh
export JAVA_HOME=/usr/local/jdk1.8.0_131
# mkdir /usr/local/hbase-1.2.6/data
# vim conf/hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:/usr/local/hbase</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/data/zookeeper</value>
</property>
<!-- 設置是否分佈式環境,false表示單機,默認爲false -->
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
</configuration>
啓動Hbase
# bin/start-hbase.sh
通過http://192.168.0.30:16010/master-status訪問Hbase的web頁面
至此,Hbase的單機模式環境搭建完畢.
備註:單機模式運行無需單獨安裝zookeeper,啓動時默認使用hbase自帶的zookeeper,默認端口2181,如果已經安裝了zookeeper並啓動,則啓動時有可能會端口衝突,目前解決辦法是修改安裝的zookeeper的默認端口,如修改爲2182等。(方法比較粗暴,有其他解決方式請在評論中指正)
分佈式環境搭建
分佈式需要安裝hadoop,安裝方式詳見hadoop單機安裝
其他準備工作與單機版安裝一致,只是配置方式不同,比如有三臺機器,主機名分別爲master,slaves1,slaves2。其中master爲主節點namenode,slaves1和slaves2爲從節點datanode。
注:各主機系統時間需要同步,誤差不能太大,否則會出現節點啓動失敗的情況。
修改hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131
# 是否使用自帶zookeeper。 默認爲true,如果單獨安裝了zookeeper則需顯示設置爲false,並需要在hbase-site.xml中指定zookeeper節點的主機名
export HBASE_MANAGES_ZK=false
修改hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<!-- “/hbase”前面的部分需要和hadoop中core-site.xml中的fs.default.name一致 -->
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<!-- 設置是否分佈式環境,false表示單機,默認爲false -->
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<!-- 此處配置主機名,多個主機之間用英文逗號隔開 -->
<value>master,slaves1,slaves2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/hbase/data/zookeeper</value>
</property>
</configuration>
修改slaves,將原來的localhost刪除,添加slaves1和slaves2,修改後如下:
slaves1
slaves2
注:由於僞分佈式環境沒有使用自帶的zookeeper,所以啓動前需先啓動zookeeper,否則使用hbase shell連接hbase時會無法連接。
配置完成後只需要在master節點執行start-hbase.sh即可啓動集羣。