十、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中新增:{HBASE_HOME}/lib/*
三、配置檔案
這裡有三個重要的配置檔案:hbase-site.xml、
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/