HBase配置文件設置


Hadoop 2.7.4 + HBase 1.2.6 + ZooKeeper 3.4.10 配置

本文為上述配置的一部分,為方便閱讀,故設為獨立頁面

 

下載hbase: https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz

 

解壓到目錄/home/mytestzk/hbase-1.2.6

HBase本身就內置Zookeeper以支持HA,在配置時可選擇內部自帶的Zookeeper或者選擇外部獨立安裝的Zookeeper,對於存儲可選擇HDFS為底層分布式存儲,故受HDFS是否配置為HA而影響,HDFS non HA 及HDFS HA下,HBase的配置文件需要相應的修改,且在啟動HBase前,必須先啟動zookeeper

 

1:設置環境變量及臨時目錄:gedit ~/.bashrc

export HBASE_HOME=/home/mytestzk/hbase-1.2.6
export PATH=$HBASE_HOME/bin:$PATH

   創建臨時目錄:mkdir /hbase-1.2.6/tmp

2:修改配置文件

  • hbase-env.sh

  hbase自帶zookeeper,如果不用自帶zk,將下面HBASE_MANAGES_ZK設置為fales,使用獨立配置的zookeeper

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_151  #Java的環境
export HBASE_CLASSPATH=/home/mytestzk/hbase-1.2.6/conf   #hadoop配置文件的地址
export HBASE_MANAGES_ZK=false # 此配置信息,設置由獨立的zk集群管理,故為false
export HBASE_LOG_DIR=/opt/hbase/logs #Hbase日志目錄
  • hbase-site.xml
<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://mycluster/hbase</value>
        <!--配置為core-site.xml 中的fs.defaultFS -->
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>60000</value>
        <!-- Hbase HA 方式下只需配置端口 -->
    </property>
    <property>
        <name>hbase.tmp.dir</name>
        <value>/home/mytestzk/hbase-1.2.6/tmp</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>master,slave1,slave2 </value>
    </property>
    <property>
        <name>hbase.zoopkeeper.property.dataDir</name>
        <value>/home/mytestzk/zookeeper-3.4.10/data</value>
    </property>
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>
</configuration>
  • regionservers (注:通常應該將regionserver配置為datanode相同的server上以實現本地存儲,提升性能)
master
slave1
slave2

 

 

3:hbase-site.xml 配置參數解析

  • hbase.rootdir

這個目錄是 RegionServer 的共享目錄,用來持久化 HBase。特別注意的是 hbase.rootdir 里面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必須一致。(HA環境下,dfs.nameservices  是由zookeeper來決定的)

  • hbase.cluster.distributed

HBase 的運行模式。為 false 表示單機模式,為 true 表示分布式模式。若為 false,HBase 和 ZooKeeper 會運行在同一個 JVM 中

  • hbase.master

如果只設置單個 Hmaster,那么 hbase.master 屬性參數需要設置為 master:60000 (主機名:60000)

如果要設置多個 Hmaster,那么我們只需要提供端口 60000,因為選擇真正的 master 的事情會有 zookeeper 去處理

  • hbase.tmp.dir

本地文件系統的臨時文件夾。可以修改到一個更為持久的目錄上。(/tmp會在重啟時清除)

  • hbase.zookeeper.quorum

對於 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 參數中列出全部的 ZooKeeper 的主機,用逗號隔開。該屬性值的默認值為 localhost,這個值顯然不能用於分布式應用中。

  • hbase.zookeeper.property.dataDir

這個參數用戶設置 ZooKeeper 快照的存儲位置,默認值為 /tmp,顯然在重啟的時候會清空。因為筆者的 ZooKeeper 是獨立安裝的,所以這里路徑是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所設定的位置。

  • hbase.zookeeper.property.clientPort

表示客戶端連接 ZooKeeper 的端口。

  • zookeeper.session.timeout

ZooKeeper 會話超時。Hbase 把這個值傳遞改 zk 集群,向它推薦一個會話的最大超時時間

  • hbase.regionserver.restart.on.zk.expire

當 regionserver 遇到 ZooKeeper session expired , regionserver 將選擇 restart 而不是 abort。

 

 

4:啟動:(注意:復制hadoop-2.7.4/etc/hadoop 目錄下的core-site.xml 及hdfs-site.xml 到hbase/conf 目錄,否則運行時會報異常錯誤: Java.net.UnknownHostException: mycluster)

在主節點上啟動hbase: bin/start-hbase.sh

在備節點上啟動hmaster:bin/hbase-daemon.sh start master

 

5:檢查狀態

  • 可以查看進程jps:

在master和備節點上可以看到進程:HMaster,HRegionServer

在其它節點上可以看到進程:HRegionServer

  • 瀏覽器查看:master:16010, slave1:16010

可以看到一個是Active Master, 一個為Backup Master


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM