HBase(二)CentOS7.5搭建HBase1.2.6HA集羣

1、安裝前提

一、HBase 依賴於 HDFS 作底層的數據存儲html

二、HBase 依賴於 MapReduce 作數據計算java

三、HBase 依賴於 ZooKeeper 作服務協調node

四、HBase源碼是java編寫的,安裝須要依賴JDKweb

一、版本選擇

打開官方的版本說明http://hbase.apache.org/1.2/book.htmlapache

JDK的選擇

Hadoop的選擇

此處咱們的hadoop版本用的的是2.7.6,HBase選擇的版本是1.2.6api

二、下載安裝包

官網下載地址:http://archive.apache.org/dist/hbase/瀏覽器

三、徹底分佈式部署

默認狀況下,HBase以獨立模式運行。提供獨立模式和僞分佈模式都是爲了進行小規模測試。服務器

對於生產環境,分佈式模式是合適的。在分佈式模式下,HBase守護程序的多個實例在羣集中的多個服務器上運行。app

節點IP  節點名稱 Master BackupMaster RegionServer Zookeeper HDFS
192.168.100.21 node21   √   √
192.168.100.22 node22    √
192.168.100.23 node23      √

Zookeeper集羣安裝參考:CentOS7.5搭建Zookeeper3.4.12集羣

Hadoop集羣安裝參考:CentOS7.5搭建Hadoop2.7.6徹底分佈式集羣

2、HBase的集羣安裝

安裝過程參考官方文檔:http://hbase.apache.org/1.2/book.html#standalone_dist分佈式

一、上傳解壓縮

解壓 HBase 到指定目錄:

[admin@node21 software]$ tar zxvf hbase-1.2.6-bin.tar.gz -C /opt/module/

二、修改配置文件

配置文件在/opt/module/hbase-1.2.6/conf目錄下

hbase-env.sh 修改內容:

export JAVA_HOME=/opt/module/jdk1.8
export HBASE_MANAGES_ZK=false

hbase-site.xml 修改內容:

<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://mycluster/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>node21,node22,node23</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/module/zookeeper-3.4.12/Data</value>
</property>
</configuration>

region servers修改內容

node21
node22
node23

在 conf 目錄下建立 backup-masters 文件,添加備機名

$ echo node22 > conf/backup-masters

三、軟鏈接Hadoop配置

[admin@node21 ~]$ ln -s /opt/module/hadoop-2.7.6/etc/hadoop/hdfs-site.xml /opt/module/hbase-1.2.6/conf/

四、替換Hbase依賴的Jar

因爲 HBase 須要依賴 Hadoop,因此替換 HBase 的 lib 目錄下的 jar 包,以解決兼容問題:

1) 刪除原有的 jar:

[admin@node21 ~]$ rm -rf /opt/module/hbase-1.2.6/lib/hadoop-* 
[admin@node21 ~]$ rm -rf /opt/module/hbase-1.2.6/lib/zookeeper-3.4.6.jar

2) 拷貝新 jar,涉及的 jar 有:

hadoop-annotations-2.7.6.jar  hadoop-mapreduce-client-app-2.7.6.jar     hadoop-mapreduce-client-hs-plugins-2.7.6.jar 
hadoop-auth-2.7.6.jar         hadoop-mapreduce-client-common-2.7.6.jar  hadoop-mapreduce-client-jobclient-2.7.6.jar  
hadoop-common-2.7.6.jar       hadoop-mapreduce-client-core-2.7.6.jar    hadoop-mapreduce-client-shuffle-2.7.6.jar     
hadoop-hdfs-2.7.6.jar         hadoop-mapreduce-client-hs-2.7.6.jar      hadoop-yarn-api-2.7.6.jar
hadoop-yarn-client-2.7.6.jar  hadoop-yarn-common-2.7.6.jar              hadoop-yarn-server-common-2.7.6.jar
zookeeper-3.4.12.jar

尖叫提示:這些 jar 包的對應版本應替換成你目前使用的 hadoop 版本,具體狀況具體分析。

[admin@node21 ~]$ find /opt/module/hadoop-2.7.6/ -name hadoop-annotations*

而後將找到的 jar 包複製到 HBase 的 lib 目錄下便可。

五、分發安裝包到其餘節點

[admin@node21 ~]$ scp -r /opt/module/hbase-1.2.6/ node22:/opt/module/ 
[admin@node21 ~]$ scp -r /opt/module/hbase-1.2.6/ node23:/opt/module/

六、配置環境變量

全部服務器都有進行配置

[admin@node21 ~]$ vi /etc/profile 
#HBase
export HBASE_HOME=/opt/module/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin

使環境變量當即生效

[admin@node21 ~]$ source /etc/profile 

七、同步時間

尖叫提示: HBase 集羣對於時間的同步要求的比HDFS嚴格,若是集羣之間的節點時間不一樣步,會致使 region server 沒法啓動,拋出ClockOutOfSyncException 異常。因此,集羣啓動以前千萬記住要進行 時間同步,要求相差不要超過 30s.

<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>Time difference of regionserver from master</description>
</property>

3、啓動HBase集羣

嚴格按照啓動順序進行

一、啓動zookeeper集羣

每一個zookeeper節點都要執行如下命令

[admin@node21 ~]$ zkServer.sh start

二、啓動Hadoop集羣

若是須要運行MapReduce程序則啓動yarn集羣,不然不須要啓動

[admin@node21 ~]$ start-dfs.sh
[admin@node22 ~]$ start-yarn.sh

三、啓動HBase集羣

保證 ZooKeeper 集羣和 HDFS 集羣啓動正常的狀況下啓動 HBase 集羣 啓動命令:start-hbase.sh,在哪臺節點上執行此命令,哪一個節點就是主節點

啓動方式 1

[admin@node21 ~]$ start-hbase.sh
starting master, logging to /opt/module/hbase-1.2.6/logs/hbase-admin-master-node21.out
node23: starting regionserver, logging to /opt/module/hbase-1.2.6/logs/hbase-admin-regionserver-node23.out
node21: starting regionserver, logging to /opt/module/hbase-1.2.6/logs/hbase-admin-regionserver-node21.out
node22: starting regionserver, logging to /opt/module/hbase-1.2.6/logs/hbase-admin-regionserver-node22.out
node22: starting master, logging to /opt/module/hbase-1.2.6/logs/hbase-admin-master-node22.out

啓動方式 2

$ hbase-daemon.sh start master 
$ hbase-daemon.sh start regionserver

觀看啓動日誌能夠看到:

(1)首先在命令執行節點啓動 master

(2)而後分別在 node21,node22,node23 啓動 regionserver

(3)而後在 backup-masters 文件中配置的備節點上再啓動一個 master 主進程

尖叫提 示: 若是使用的是 JDK8 以 上 版 本 , 則 應 在 hbase-evn.sh 中 移除 「HBASE_MASTER_OPTS」和「HBASE_REGIONSERVER_OPTS」配置。

四、中止HBase集羣

[admin@node21 ~]$ stop-hbase.sh 

4、驗證啓動是否正常

一、檢查各進程是否啓動正常

 主節點和備用節點都啓動 hmaster 進程,各從節點都啓動 hregionserver 進程,按照對應的配置信息各個節點應該要啓動的進程以下所示

二、經過訪問瀏覽器頁面查看

WebUI地址查看:http://node21:16010/master-status

三、驗證高可用

幹掉node21上的hbase進程,觀察備用節點是否啓用

[admin@node21 ~]$ kill -9 3414

 node21界面訪問失敗,node22變成主節點

四、手動啓動進程

啓動HMaster進程,當node21節點上的HMaster進程起來後又會成爲備用Master,狀態可經過webUI查看。

[admin@node21 ~]$ jps
3650 HRegionServer
2677 NodeManager
2394 DFSZKFailoverController
4442 Jps
1852 DataNode
2156 JournalNode
1405 QuorumPeerMain
[admin@node21 ~]$ hbase-daemon.sh start master
starting master, logging to /opt/module/hbase-1.2.6/logs/hbase-admin-master-node21.out
[admin@node21 ~]$ jps
3650 HRegionServer
2677 NodeManager
4485 HMaster
4630 Jps
2394 DFSZKFailoverController
1852 DataNode
2156 JournalNode
1405 QuorumPeerMain

啓動HRegionServer進程

$ hbase-daemon.sh start regionserver 
相關文章
相關標籤/搜索