HBase 使用的是 1.2.9 的版本。  Hadoop HA 的搭建見我的另外一篇:Hadoop 2.7.3 HA 搭建及遇到的一些問題

以下目錄均為 HBase 解壓後的目錄。

1. 修改 conf/hbase-site.xml,內容如下

<configuration>

    <!-- HBase 的執行模式。為 false 表示單機模式,為 true 表示分散式模式。若為 false,HBase 和 ZooKeeper 會執行在同一個 JVM 中 -->
  <property>
         <name>hbase.cluster.distributed</name>
         <value>true</value>
     </property>

    <!-- 配置的是 RegionServer 的共享目錄,用來持久化 HBase。特別注意的是 hbase.rootdir 裡面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 裡面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、埠必須一致。 此例配置的是 Hadoop HA 時的情況, /hbase 是指在 Hadoop 裡的目錄 -->
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://shjcluster/hbase</value>
     </property>

     <!-- 如果只設置單個 Hmaster,那麼 hbase.master 屬性引數需要設定為 master5:60000 (主機名:60000)
       如果要設定多個 Hmaster,那麼我們只需要提供埠 60000,因為選擇真正的 master 的事情會有 zookeeper 去處理 -->
    <property>
        <name>hbase.master</name>
        <value>60000</value>
    </property>

    <!-- 對於 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 引數中列出全部的 ZooKeeper 的主機,用逗號隔開。 -->
  <property>
        <name>hbase.zookeeper.quorum</name>
         <value>bigdata3:2181,bigdata4:2181,bigdata5:2181</value>
  </property>

  <!-- 設定 ZooKeeper 快照的儲存位置,預設值為 /tmp -->
  <property>
        <name>hbase.zookeeper.property.dataDir</name>
        <value>/opt/data/hbase/zookeeperData</value>
    </property>

    <!-- 表示客戶端連線 ZooKeeper 的埠。 -->
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>


    <property>
        <name>hbase.tmp.dir</name>
        <value>/opt/data/hbase/tmp</value>
    </property>


     <property>
         <name>hbase.master.info.port</name>
         <value>60010</value>
     </property>
     <property>
         <name>hbase.regionserver.info.port</name>
         <value>60030</value>
     </property>

     <!-- ZooKeeper 會話超時。Hbase 把這個值傳遞給 zk 叢集,向它推薦一個會話的最大超時時間 -->
    <property>
        <name>zookeeper.session.timeout</name>
        <value>120000</value>
    </property>
        
    <!-- 當 regionserver 遇到 ZooKeeper session expired , regionserver 將選擇 restart 而不是 abort。 -->
    <property>
        <name>hbase.regionserver.restart.on.zk.expire</name>
        <value>true</value>
    </property>

</configuration>

 

2. 修改 hdfs-env.sh

export JAVA_HOME=/home/jdk1.8.0_80

export HBASE_LOG_DIR=${HBASE_HOME}/logs      

export HBASE_MANAGES_ZK=false

 

3. 修改 conf/regionservers

slaver1

slaver2

slaver3

 

4.  複製 hadoop 的 core-site.xml 和 hdfs-site.xml 到 conf 中

5. 在 master1 上啟動 HMaster (主),  命令: bin/start-hbase.sh

6. 在 master2 上啟動 另一個 HMaster (從),命令:bin/hbase-demon.sh start master

7. 訪問  http://master1:60010