1. 程式人生 > >Hadoop2.7.2高可用(HA)環境下Hbase高可用(HA)環境的搭建(在Ubuntu14.04下以root使用者進行配置)

Hadoop2.7.2高可用(HA)環境下Hbase高可用(HA)環境的搭建(在Ubuntu14.04下以root使用者進行配置)

Hadoop2.7.2高可用(HA)環境下Hbase高可用(HA)環境的搭建 轉載請註明出處:http://blog.csdn.net/qq_23181841/article/details/75095370 (在Ubuntu14.04下以root使用者進行配置)
  1. 下載hbase-1.2.4-bin.tar.gz,並解壓
    #tar -zxvf hbase-1.2.4-bin.tar.gz -C /home/
  1. 修改conf/hbase-site.xml檔案
  #vim hbase-site.xml      <configuration>    <property>   <name>hbase.rootdir</name>   <value>hdfs://nameserver/hbase</value>  </property> <property>   <name>hbase.master</name>   <value>60000</value> </property> <property> <name>hbase.tmp.dir</name> <value>/home/hbase-1.2.4/hbase-tmp</value> </property>  <property>    <name>hbase.cluster.distributed</name>    <value>true</value>  </property>  <property>    <name>hbase.master.info.port</name>    <value>60010</value>  </property>  <property>    <name>hbase.regionserver.info.port</name>    <value>60030</value>  </property> <property> <name>zookeeper.session.timeout</name> <value>120000</value> </property> <property>     <name>hbase.zookeeper.property.clientPort</name>     <value>2181</value>   </property>  <property>    <name>hbase.zookeeper.quorum</name>    <value>master:2181,slaver1:2181,slaver2:2181</value>  </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/zookeeperData</value> </property> <property> <name>hbase.regionserver.restart.on.zk.expire</name> <value>true</value> </property> </configuration>
  1.   hbase-site.xml 配置引數解析

1. hbase.rootdir 這個目錄是 RegionServer 的共享目錄,用來持久化 HBase。特別注意的是 hbase.rootdir 裡面的 HDFS 地址是要跟 Hadoop 的 core-site.xml 裡面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、埠必須一致。 (HA環境下,dfs.nameservices  是由zookeeper來決定的) 2. hbase.cluster.distributed HBase 的執行模式。為 false 表示單機模式,為 true 表示分散式模式。若為 false,HBase 和 ZooKeeper 會執行在同一個 JVM 中 3. hbase.master - 如果只設置單個 Hmaster,那麼 hbase.master 屬性引數需要設定為 master5:60000 (主機名:60000) - 如果要設定多個 Hmaster,那麼我們只需要提供埠 60000,因為選擇真正的 master 的事情會有 zookeeper 去處理 4. hbase.tmp.dir 本地檔案系統的臨時資料夾。可以修改到一個更為持久的目錄上。(/tmp會在重啟時清除) 5. hbase.zookeeper.quorum 對於 ZooKeeper 的配置。至少要在 hbase.zookeeper.quorum 引數中列出全部的 ZooKeeper 的主機,用逗號隔開。該屬性值的預設值為 localhost,這個值顯然不能用於分散式應用中。 6. hbase.zookeeper.property.dataDir 這個引數使用者設定 ZooKeeper 快照的儲存位置,預設值為 /tmp,顯然在重啟的時候會清空。因為筆者的 ZooKeeper 是獨立安裝的,所以這裡路徑是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所設定的位置。 7. hbase.zookeeper.property.clientPort 表示客戶端連線 ZooKeeper 的埠。 8. zookeeper.session.timeout ZooKeeper 會話超時。Hbase 把這個值傳遞改 zk 叢集,向它推薦一個會話的最大超時時間 9. hbase.regionserver.restart.on.zk.expire 當 regionserver 遇到 ZooKeeper session expired , regionserver 將選擇 restart 而不是 abort。
  1.  修改hbase-env.sh
   #vim hbase-env.sh       export JAVA_HOME=/home/jdk1.7.0_80       export HBASE_CLASSPATH= /home/hbase-1.2.4       export HBASE_HEAPSIZE=4000       export HBASE_LOG_DIR=${HBASE_HOME}/logs       export HBASE_MANAGES_ZK=false         引數註解:
      •   其中JAVA_HOME 和 HBASE_CLASSPATH 根據實際情況進行配置
      •   HBASE_HEAPSIZE 的大小根據你的叢集配置,預設是 1000
      •   HBASE_LOG_DIR 是 HBase 日誌存放位置
      •   HBASE_MANAGES_ZK=false 含義為 hbase 不託管 zookeeper 的啟動與關閉,因為筆者的 ZooKeeper 是獨立安裝的
  1.   配置 regionservers
   #vim regionservers                master                slaver1                slaver2
  1.   替換Hadoop的jar包
  由於 HBase 依賴於 Hadoop,因此在安裝包的 lib 資料夾下包含了一個 Hadoop 的核心 jar 檔案。在分散式模式下,HBase 使用的 Hadoop 版本必須和執行中的 Hadoop 叢集的 jar 檔案版本一致。將執行的分散式 Hadoop 版本的 jar 檔案替換 HBase 的 lib 目錄下的 Hadoop 的 jar 檔案,以避免版本不匹配問題。確認替換了叢集中所有節點的 HBase 安裝目錄下 lib 目錄的 jar 檔案。Hadoop 版本不匹配問題有不同的表現,但看起來 HBase 像掛掉了。              cp ${HADOOP_HOME}/share/hadoop/common/hadoop-auth-2.7.2.jar ${HBASE_HOME}/lib/          複製hadoop的core-site.xml和hdfs-site.xml到${HBASEHOME}/conf中,否則在啟動時,Regionserver會啟動失敗,報錯java.lang.IllegalArgumentException: java.net.UnknownHostException: nameserver        #cp /home/hadoop-2.7.2/etc/hadoop/core-site.xml /home/hbase-1.2.4/conf/        #cp /home/hadoop-2.7.2/etc/hadoop/hdfs-site.xml /home/hbase-1.2.4/conf/
  1. 啟動Hbase
               (1)在其中一臺機器上:     #start-hbase.sh                                          有這兩個程序,表明Hbase啟動成功                (2)在另外一臺機器上再啟動一個HMaster: #hbase-demon.sh start master                 通過Web訪問: http://192.168.10.180:60010/master-status

http://192.168.10.179:60010/master-status