教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

如何Zookeeper安裝部署HBase集群?分步驟講解

更新時(shí)間:2021年06月17日11時(shí)31分 來(lái)源:傳智教育 瀏覽次數(shù):

傳智教育-一樣的教育,不一樣的品質(zhì)

HBase中存儲(chǔ)在HDFS中的數(shù)據(jù)是通過(guò)Zookeeper協(xié)調(diào)處理的。由于HBase存在單點(diǎn)故障的問(wèn)題,因此,可以通過(guò)Zookeeper部署一個(gè)高可用的HBase集群解決。下面,以三臺(tái)服務(wù)器為例(hadoop01、hadoop02和hadoop03),講解如何安裝部署HBase集群。HBase集群的規(guī)劃方式如圖1所示。

HBase集群規(guī)劃

圖1 HBase集群規(guī)劃

在圖1中,HBase集群中的hadoop01和hadoop02是主節(jié)點(diǎn),hadoop02和hadoop03是從節(jié)點(diǎn)。這里之所以將hadoop02既部署為主節(jié)點(diǎn)也部署為從節(jié)點(diǎn),其目的是為了避免HBase集群主節(jié)點(diǎn)宕機(jī)導(dǎo)致單點(diǎn)故障問(wèn)題。

接下來(lái),分步驟講解如何部署HBase集群,具體步驟如下:

(1) 安裝JDK、Hadoop以及Zookeeper,這里我們?cè)O(shè)置的JDK版本是1.8、Hadoop版本是2.7.4以及Zookeeper的版本是3.4.10。

(2) 下載HBase安裝包。官網(wǎng)下載地址:http://archive.apache.org/dist/hbase/。這里,我們選擇下載的版本是1.2.1。

(3) 上傳并解壓HBase安裝包。將HBase安裝包上傳至Linux系統(tǒng)的/export/software/目錄下,然后解壓到/export/servers/目錄。解壓安裝包的具體命令如下:

$ tar -zxvf hbase-1.2.1-bin.tar.gz -C /export/servers/

(4) 將/hadoop-2.7.4/etc/hadoop目錄下的hdfs-site.xml和core-site.xml配置文件復(fù)制一份到/hbase-1.2.1/conf目錄下,復(fù)制文件的具體命令如下:

$ cp /export/servers/hadoop-2.7.4/etc/hadoop/{hdfs-site.xml,core-site.xm} /export/servers/hbase-1.2.1/conf

(5) 進(jìn)入/hbase-1.2.1/conf目錄修改相關(guān)配置文件。打開(kāi)hbase-env.sh配置文件,指定jdk的環(huán)境變量并配置Zookeeper(默認(rèn)是使用內(nèi)置的Zookeeper服務(wù)),修改后的hbase-env.sh文件內(nèi)容具體如下:

# The java implementation to use. Java 1.7+ required.
\# 配置jdk環(huán)境變量
**export JAVA_HOME=/export/servers/jdk**
\# Tell HBase whether it should manage it's own instance of Zookeeper or not.
\# 配置hbase使用外部Zookeeper
**export HBASE_MANAGES_ZK=false

打開(kāi)hbase-site.xml配置文件,指定HBase在HDFS的存儲(chǔ)路徑、HBase的分布式存儲(chǔ)方式以及Zookeeper地址,修改后的hbase-site.xml文件內(nèi)容具體如下:

<configuration>
    <!-- 指定hbase在HDFS上存儲(chǔ)的路徑 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop01:9000/hbase</value>
    </property>
        <!-- 指定hbase是分布式的 -->
    <property>
         <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
        <!-- 指定zk的地址,多個(gè)用“,”分割 -->
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value>
    </property>
</configuration>

修改regionservers配置文件,配置HBase的從節(jié)點(diǎn)角色(即hadoop02和hadoop03)。具體內(nèi)容如下:

hadoop02
hadoop03

修改ackup-masters配置文件,為防止單點(diǎn)故障配置備用的主節(jié)點(diǎn)角色,具體內(nèi)容如下:

hadoop02

修改profile配置文件,通過(guò)“vi /etc/profile”命令進(jìn)入系統(tǒng)環(huán)境變量配置文件,配置HBase的環(huán)境變量(服務(wù)器hadoop01、hadoop02和hadoop03都需要配置),具體內(nèi)容如下:

export HBASE_HOME=/export/servers/hbase-1.2.1
export PATH=$PATH:$HBASE_HOME/bin:

將HBase的安裝目錄分發(fā)至hadoop02、hadoop03服務(wù)器上。具體命令如下:

$ scp –r /export/servers/hbase-1.2.1/ hadoop02:/export/servers/
$ scp –r /export/servers/hbase-1.2.1/ hadoop03:/export/servers/

在服務(wù)器hadoop01、hadoop02和hadoop03上分別執(zhí)行“source /etc/profile”命令,使系統(tǒng)環(huán)境配置文件生效。

(6) 啟動(dòng)Zookeeper和HDFS,具體命令如下:

# 啟動(dòng)zookeeper
$ zkServer.sh start
\# 啟動(dòng)hdfs
$ start-dfs.sh

(7) 啟動(dòng)HBase集群,具體命令如下:

$ start-hbase.sh

這里需要注意的是,在啟動(dòng)HBase集群之前,必須要保證集群中各個(gè)節(jié)點(diǎn)的時(shí)間是同步的,若不同步會(huì)拋出ClockOutOfSyncException異常,導(dǎo)致從節(jié)點(diǎn)無(wú)法啟動(dòng)。因此需要在集群各個(gè)節(jié)點(diǎn)中執(zhí)行如下命令來(lái)保證時(shí)間同步。

$ ntpdate -u cn.pool.ntp.org

(8) 通過(guò)“jps”命令檢查HBase集群服務(wù)部署是否成功,如圖2所示。

查看HBase集群中的進(jìn)程

圖2 查看HBase集群中的進(jìn)程

從圖2可以看出,服務(wù)器hadoop01上出現(xiàn)了HMaster進(jìn)程,服務(wù)器hadoop02上出現(xiàn)了HMaster和HRegionServer進(jìn)程,服務(wù)器hadoop03上出現(xiàn)了HRegionServer進(jìn)程,證明HBase集群安裝部署成功。若需要停止HBase集群,則執(zhí)行“stop-hbase.sh”命令。

下面,通過(guò)瀏覽器訪問(wèn)[http://hadoop01:16010,查看HBase集群狀態(tài),如圖3所示。

查看HBase集群中的進(jìn)程

圖3 HBase集群狀態(tài)

從圖3可以看出,服務(wù)器hadoop01是HBase的主節(jié)點(diǎn),服務(wù)器hadoop02和hadoop03是從節(jié)點(diǎn)。下面,通過(guò)訪問(wèn)http://hadoop02:16010來(lái)查看集群備用主節(jié)點(diǎn)的狀態(tài),如圖4所示。

查看HBase集群中的進(jìn)程

圖4 HBase集群備用節(jié)點(diǎn)的狀態(tài)

從圖4可以看出,服務(wù)器hadoop02是HBase集群的備用主節(jié)點(diǎn),并且可以從Active Master看出主節(jié)點(diǎn)在正常工作。





猜你喜歡:

HBase讀寫(xiě)數(shù)據(jù)分幾步?具體是怎樣操作的?

HBase讀寫(xiě)數(shù)據(jù)分幾步?具體是怎樣操作的?

Redis、傳統(tǒng)數(shù)據(jù)庫(kù)、HBase以及Hive的區(qū)別

HBase分布式數(shù)據(jù)庫(kù)有哪些特點(diǎn)?HBase簡(jiǎn)介

傳智教育Python+大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

0 分享到:
和我們?cè)诰€交談!