1. 程式人生 > >centos7.3上部署Habse叢集及遇到的問題

centos7.3上部署Habse叢集及遇到的問題

一、前期準備工作

1、下載hbase安裝包

Hbaser官方下載地址:http://mirror.bit.edu.cn/apache/hbase/

目前安裝的版本為:hbase-2.0.2-bin.tar.gz

2、準備好要安裝的叢集環境的目標機器

3、將下載好的壓縮包拷貝到叢集機器中

----可利用shell軟體的rz命令進行拷貝

4、安裝JDK,可參照:https://blog.csdn.net/xuexi_39/article/details/82854735

5、建立hadoop使用者並賦予管理員許可權

6、hadoop及zookeeper叢集環境都已搭建好(因hbase依賴於hadoop及zookeeper)

二、解壓壓縮包到目標安裝目錄下

1、將壓縮包解壓到/usr/local下

tar -xvf hbase-2.0.2-bin.tar.gz -C /usr/local/

2、將hbase-1.4.3名稱修改為hbase

mv hbase-2.0.2 hbase

三、更改hbase目錄所屬者及所屬組為hadoop使用者

chown -hR hadoop /usr/local/hbase/   # 修改所有者為hadoop
chgrp -hR hadoop /usr/local/hbase/   # 修改所屬組為hadoop

四、配置系統環境變數

1、開啟sudo vim /etc/profile在底部新增如下資訊

#hbase environment
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin

2、source /etc/profile 使得新增的環境變數資訊立即生效

3、使用echo $HBASE_HOME檢測環境變數是否生效

五、修改habse相關配置檔案

 1、修改/usr/local/hbase/conf目錄下的hbase-env.sh,在該檔案新增如下內容

-- 1、設定java安裝路徑
export JAVA_HOME=/opt/java/jdk1.8.0_131
-- 2、設定hbase的日誌地址
export HBASE_LOG_DIR=${HBASE_HOME}/logs
-- 3、設定是否使用hbase管理zookeeper(因使用zookeeper管理的方式,故此引數設定為false)
export HBASE_MANAGES_ZK=false
-- 4、設定hbase的pid檔案存放路徑
export HBASE_PID_DIR=/var/hadoop/pids

2、新增叢集內所有的機器名稱到regionservers檔案中


master
dataserver1
dataserver2

3、修改/usr/local/hbase/conf目錄下的hbase-site.sh,(在configuration節點下新增如下內容)

            <property>
        <name>hbase.rootdir</name> <!-- hbase存放資料目錄 -->
        <value>hdfs://master:9000/hbase</value>
          <!-- 埠要和Hadoop的fs.defaultFS埠一致-->
      </property>
      <property>
        <name>hbase.cluster.distributed</name> <!-- 是否分散式部署 -->
        <value>true</value>
      </property>
            <property>
              <name> hbase.master</name>
              <value>hdfs://master:60000</value>
            </property>
      <property>
        <name>hbase.zookeeper.quorum</name> <!-- list of  zookooper -->
        <value>master,dataserver1,dataserver2</value>
      </property>    
       <property><!--zookooper配置、日誌等的儲存位置 -->
          <name>hbase.zookeeper.property.dataDir</name>
          <value>/usr/local/hbase/logs</value>
       </property>
             <property>
                 <name>hbase.master.info.port</name>
                 <value>16010</value>
             </property>
             <property>
               <name>hbase.regionserver.info.port</name>
               <value>16030</value>
             </property>

4、將配置檔案拷貝到其它分支對應的目錄下

sudo scp hbase-env.sh [email protected]:/usr/local/hbase/conf/
sudo scp hbase-site.xml [email protected]:/usr/local/hbase/conf/
sudo scp regionservers [email protected]:/usr/local/hbase/conf/

六、啟動hbase服務

1、在主節點master上,進入cd /usr/local/hbase/bin目錄下

2、執行啟動命令:./start-hbase.sh

3、在web介面訪問

http://masterIP地址:16010

七、在部署過程中遇見的問題:

1)提示檔案許可權問題,錯誤資訊如下所示:

解決方式如下:

1)在根目錄中新建資料夾:mkdir /var/hadoop/pids

2)設定hadoop目錄所有者及所屬許可權為hadoop使用者

3)將export  HBASE_PID_DIR=/var/hadoop/pids新增到系統環境變數中

2)提示如下錯誤資訊

輸入jps檢視hbase程序,一直顯示主節點啟動,分支節點沒有啟動

解決方式:

1)檢視叢集內所有機器的系統時間是否都一致,同時保證每一臺機器的系統時間與硬體時間也都一致;

2)檢視系統時間date

3)檢視硬體時間hwclock

4)統一設定系統時間date -s "13:00:00"  #系統正常時間

5)硬體時間與系統時間同步 hwclock -s 

6)重新啟動hadoop ,zookeeper,在啟動hbase即可

3、啟動habse後,hmaster會出現自動消失的現象

解決方式:

關閉hadoop及zookeeper所有程序後,刪除hadoop目錄下的tmp及logs檔案,重新格式化hadoop ,在重新依次啟動hadoop、zookeeper,hbase即可