更新時間:2021-06-17 來源:黑馬程序員 瀏覽量:
HBase中存儲在HDFS中的數據是通過Zookeeper協調處理的。由于HBase存在單點故障的問題,因此,可以通過Zookeeper部署一個高可用的HBase集群解決。下面,以三臺服務器為例(hadoop01、hadoop02和hadoop03),講解如何安裝部署HBase集群。HBase集群的規(guī)劃方式如圖1所示。
圖1 HBase集群規(guī)劃
在圖1中,HBase集群中的hadoop01和hadoop02是主節(jié)點,hadoop02和hadoop03是從節(jié)點。這里之所以將hadoop02既部署為主節(jié)點也部署為從節(jié)點,其目的是為了避免HBase集群主節(jié)點宕機導致單點故障問題。
接下來,分步驟講解如何部署HBase集群,具體步驟如下:
(1) 安裝JDK、Hadoop以及Zookeeper,這里我們設置的JDK版本是1.8、Hadoop版本是2.7.4以及Zookeeper的版本是3.4.10。
(2) 下載HBase安裝包。官網下載地址:http://archive.apache.org/dist/hbase/。這里,我們選擇下載的版本是1.2.1。
(3) 上傳并解壓HBase安裝包。將HBase安裝包上傳至Linux系統的/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配置文件復制一份到/hbase-1.2.1/conf目錄下,復制文件的具體命令如下:
$ cp /export/servers/hadoop-2.7.4/etc/hadoop/{hdfs-site.xml,core-site.xm} /export/servers/hbase-1.2.1/conf
(5) 進入/hbase-1.2.1/conf目錄修改相關配置文件。打開hbase-env.sh配置文件,指定jdk的環(huán)境變量并配置Zookeeper(默認是使用內置的Zookeeper服務),修改后的hbase-env.sh文件內容具體如下:
# 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
打開hbase-site.xml配置文件,指定HBase在HDFS的存儲路徑、HBase的分布式存儲方式以及Zookeeper地址,修改后的hbase-site.xml文件內容具體如下:
<configuration> <!-- 指定hbase在HDFS上存儲的路徑 --> <property> <name>hbase.rootdir</name> <value>hdfs://hadoop01:9000/hbase</value> </property> <!-- 指定hbase是分布式的 --> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <!-- 指定zk的地址,多個用“,”分割 --> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop01:2181,hadoop02:2181,hadoop03:2181</value> </property> </configuration>
修改regionservers配置文件,配置HBase的從節(jié)點角色(即hadoop02和hadoop03)。具體內容如下:
hadoop02 hadoop03
修改ackup-masters配置文件,為防止單點故障配置備用的主節(jié)點角色,具體內容如下:
hadoop02
修改profile配置文件,通過“vi /etc/profile”命令進入系統環(huán)境變量配置文件,配置HBase的環(huán)境變量(服務器hadoop01、hadoop02和hadoop03都需要配置),具體內容如下:
export HBASE_HOME=/export/servers/hbase-1.2.1 export PATH=$PATH:$HBASE_HOME/bin:
將HBase的安裝目錄分發(fā)至hadoop02、hadoop03服務器上。具體命令如下:
$ scp –r /export/servers/hbase-1.2.1/ hadoop02:/export/servers/ $ scp –r /export/servers/hbase-1.2.1/ hadoop03:/export/servers/
在服務器hadoop01、hadoop02和hadoop03上分別執(zhí)行“source /etc/profile”命令,使系統環(huán)境配置文件生效。
(6) 啟動Zookeeper和HDFS,具體命令如下:
# 啟動zookeeper $ zkServer.sh start \# 啟動hdfs $ start-dfs.sh
(7) 啟動HBase集群,具體命令如下:
$ start-hbase.sh
這里需要注意的是,在啟動HBase集群之前,必須要保證集群中各個節(jié)點的時間是同步的,若不同步會拋出ClockOutOfSyncException異常,導致從節(jié)點無法啟動。因此需要在集群各個節(jié)點中執(zhí)行如下命令來保證時間同步。
$ ntpdate -u cn.pool.ntp.org
(8) 通過“jps”命令檢查HBase集群服務部署是否成功,如圖2所示。
圖2 查看HBase集群中的進程
從圖2可以看出,服務器hadoop01上出現了HMaster進程,服務器hadoop02上出現了HMaster和HRegionServer進程,服務器hadoop03上出現了HRegionServer進程,證明HBase集群安裝部署成功。若需要停止HBase集群,則執(zhí)行“stop-hbase.sh”命令。
下面,通過瀏覽器訪問[http://hadoop01:16010,查看HBase集群狀態(tài),如圖3所示。
圖3 HBase集群狀態(tài)
從圖3可以看出,服務器hadoop01是HBase的主節(jié)點,服務器hadoop02和hadoop03是從節(jié)點。下面,通過訪問http://hadoop02:16010來查看集群備用主節(jié)點的狀態(tài),如圖4所示。
圖4 HBase集群備用節(jié)點的狀態(tài)
從圖4可以看出,服務器hadoop02是HBase集群的備用主節(jié)點,并且可以從Active Master看出主節(jié)點在正常工作。
HBase中常見的Shell命令有哪幾個?具體是怎樣操作的?
黑馬程序員Python+大數據開發(fā)課程