1. 程式人生 > >(13)HBase 1.2.6 叢集部署

(13)HBase 1.2.6 叢集部署

1.引言

      在前面的部落格中我們介紹HBase的偽分佈安裝,在本篇部落格中就主要介紹一下HBase的叢集部署,由於HBase是一款Hadoop之上的NoSQL資料庫,因此我們在安裝HBase之前需要首先部署Hadoop的叢集,其次HBase需要使用zookeeper進行管理,因此我們也需要搭建zookeeper叢集,在本篇部落格主要搭建的叢集有:

  • zookeeper叢集
  • Hadoop叢集(由於在本篇部落格中,博主配置了hadoop的自動切換NameNode,因此配置Hadoop叢集之前需要配置zookeeper
  • Hbase叢集

在本篇部落格中使用到的環境有:

  • 作業系統為:Centos6.7
  • jdk的版本為:1.7
  • jdk的安裝路徑為:/usr/local/jdk
  • hadoop的版本為:2.6.1
  • hadoop的安裝路徑為:/usr/local/hadoop
  • zookeeper的版本為:3.4.9
  • zookeeper的安裝路徑為:/usr/local/zookeeper
  • hbase的版本為:1.2.6
  • hbase的安裝路徑為:/usr/local/hbase
  • 使用root使用者進行叢集搭建

      接下來我將按照下表進行搭建Hadoop叢集:

HOST名稱 ip地址 執行的程序
hadoop1 192.168.159.130 NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController,HMaster
hadoop2 192.168.159.131 NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController
hadoop3 192.168.159.132 DataNode,NodeManger,JournalNode,QuorumPeerMain,HRegionServer
hadoop4 192.168.159.133 DataNode,NodeManger,HRegionServer
hadoop5 192.168.159.134 DataNode,NodeManger,HRegionServer

2. 搭建Hadoop叢集

      如何搭建Hadoop自動切換NameNode的叢集,請參考連結:Hadoop 2.6.1 叢集部署—自動切換HA
      在上面的連結中介紹瞭如何搭建zookeeper叢集和hadoop叢集,搭建完成後,實現了以下表格的內容,因此接下來我們只需要在此基礎上搭建HBase叢集即可。

HOST名稱 ip地址 執行的程序
hadoop1 192.168.159.130 NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController
hadoop2 192.168.159.131 NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController
hadoop3 192.168.159.132 DataNode,NodeManger,JournalNode,QuorumPeerMain
hadoop4 192.168.159.133 DataNode,NodeManger
hadoop5 192.168.159.134 DataNode,NodeManger

3. 搭建HBase叢集

3.1 解壓HBase並改名

//解壓HBase安裝包
tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local/
//進入/usr/local/目錄
cd /usr/local/
//修改資料夾名稱
mv hbase-1.2.6 hbase

3.2 修改配置

  • 修改配置檔案conf/hbase-env.sh
//編輯conf/hbase-env.sh配置檔案
vim conf/hbase-env.sh
//修改的配置檔案內容
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=false
//備註:命令列模式下,輸入“/HBASE_MANAGES_ZK”可查詢HBASE_MANAGES_ZK的位置
  • 修改配置檔案conf/hbase-site.xml
<!--
    hbase.rootdir
        代表了hbase在hadoop的地址
        value:因為我們配置了hadoop的HA,所以新增叢集的邏輯名cluster1,如果沒有配置HA,寫絕對名稱,比如:hdfs://hadoop1:9000/hbase
    hbase.cluster.distributed
        hbase的部署模式
        value:因為我們是分散式,所以選擇true
    hbase.zookeeper.quorum
        hbase需要zookeeper排程,設定zookeeper的地址
        value:需要和自己情況對應,我的為:hadoop1,hadoop2,hadoop3
-->
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cluster1/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1,hadoop2,hadoop3</value>
</property>
</configuration>

這裡寫圖片描述

  • hadoopHA配置拷貝到conf目錄下面(如果 hadoop未配置HA,就不需要此步驟)
//將hadoop的hdfs-site.xml拷貝到hbase的conf下面
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/
//將hadoop的core-site.xml拷貝到hbase的conf下面
cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
  • 編輯配置檔案regionservers
//編輯檔案regionservers 
vim regionservers 
//編輯內容如下:
hadoop3
hadoop4
hadoop5

這裡寫圖片描述

  • hbase分發到hadoop3,hadoop4,hadoop5節點
scp -rq /usr/local/hbase hadoop3:/usr/local
scp -rq /usr/local/hbase hadoop4:/usr/local
scp -rq /usr/local/hbase hadoop5:/usr/local

這裡寫圖片描述

3.3 啟動hbase叢集

  • 命令啟動hbase叢集
//啟動叢集之前,首先保證hdfs程序和zookeeper程序啟動正常
bin/start-hbase.sh

這裡寫圖片描述

這裡寫圖片描述