1. 程式人生 > >十、CentOS7安裝HBase-2.1.0偽分散式

十、CentOS7安裝HBase-2.1.0偽分散式

背景:2.1.0版本是當前官網的最新版本,首先確認的是其對Java和Hadoop的支援版本

在這裡插入圖片描述
在這裡插入圖片描述

一、解壓壓縮包

tar -zxvf  hbase-2.1.0-bin.tar.gz -C hbase/

二、新增環境變數

普通使用者的環境變數的檔案:~/.bashrc
全域性環境變數檔案:/etc/profile
兩個都新增同樣的配置:
export HBASE_HOME=/
然後在PATH中新增:HBASEHOME/binCLASSPATH{HBASE_HOME}/bin 在CLASSPATH中新增:{HBASE_HOME}/lib/*

三、配置檔案

這裡有三個重要的配置檔案:hbase-site.xml、

regionservers和hbase-env.sh
hbase-env.sh中配置:JAVA_HOME=${JAVA_HOME}和export HBASE_MANAGES_ZK=true(true預設使用內建Zookeeper)
regionservers新增的是叢集節點,偽分散式只有一個節點,就新增本機主機名master,預設是localhost,不用更改也可以,如果有更多節點通過回車鍵來進行分隔就行。
hbase-site.xml檔案配置:8020是hadoop的hdfs的埠,如果是9000就改成8020

<configuration>
	<property>
    <name>hbase.rootdir</name>
    <value>hdfs://master:8020/user/hbase</value>
 	</property>

  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>

  <property>
    <name>hbase.master</name>
    <value>master:60000</value>
  </property>

  <property>
		<name>hbase.tmp.dir</name>
		<value>/hadoopeco/hbase/tmp</value>
	</property>
	
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>master</value>
	</property>
  
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
	
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/hadoopeco/hbase/zookeeper</value>
  </property>
  	
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>true</value>
    <description>
    	Controls whether HBase will check for stream capabilities (hflush/hsync).
      Disable this if you intend to run on LocalFileSystem, denoted by a rootdir
      with the 'file://' scheme, but be mindful of the NOTE below.
      WARNING: Setting this to false blinds you to potential data loss and
      inconsistent system state in the event of process and/or node failures. If
      HBase is complaining of an inability to use hsync or hflush it's most
      likely not a false positive.
    </description>
	</property>
  
  <!-- <property>
    <name>zookeeper.znode.parent</name>
    <value>/hadoopeco/hbase</value>
  </property> -->
  <property>
    <name>hbase.zookeeper.distributed</name>
    <value>true</value>
  </property>
</configuration>

四、執行HBase

start-hbase.sh or $HBASE_HOME/bin/start-hbase.sh

hadoop running,hbase closed.
在這裡插入圖片描述
由於是單機偽分散式,只有一個master節點,SecondaryNameNode這個程序很快關閉了,暫不清楚是不是版本問題,在Hadoop3.1.0無此問題,擱置到後面的部落格文章解答。
hadoop running,hbase closed.
在這裡插入圖片描述

五、其它問題

關於HMaster啟動失敗的問題:
在這裡插入圖片描述
我第一次啟動HBase時就出現這樣的問題,也就是HMaster啟動後馬上自動kill掉了,有時kill快了點還以為沒啟動過,我的Hadoop環境為3.1.0,一開始以為是版本的問題那麼簡單,後來將Hadoop的本本降到2.8.5相容當前的HBase,結果發現還是同樣的問題,就是找不到Class,無奈之下只好番了一下lib資料夾,找到htrace所在的檔案
在這裡插入圖片描述


發現其不是在lib的第一級目錄中,而是在第二級,有點玄,我將htrace-core-3.1.0-incubating.jar複製到lib的第一級目錄中,結果重新啟動HBase發現HMaster啟動了,我。。。
直接上解決方案:

cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar  $HBASE_HOME/lib/