=============================================================
一 安裝前准備
=============================================================
下載hbase-2.2.5的JAR包后發現,lib中自帶的是hadoop2.8.5和zookeeper-3.4.10版本,
下載hbase-2.3.0的JAR包后發現,lib中自帶的是hadoop2.10和zookeeper-3.5.7版本,
因此這幾個版本肯定是比較好的,不過本人不打算用這個默認的
hbase-2.2.5==>hadoop2.8.5和zookeeper-3.4.10
hbase-2.3.0==>hadoop2.10和zookeeper-3.5.7
本人的安裝版本推薦:
HBASE2.2.X+ <==> Hadoop3.1.x+
hbase2.2.5 <==> Hadoop3.1.2
1. 下載地址
建議鏡像地址: https://mirror.bit.edu.cn/apache/hbase/2.2.5/hbase-2.2.5-bin.tar.gz
2. 規划3個集群節點:
hosts主機都已經配置好映射,映射主機名分別為master,slave1,slave2,
且已經進行ssh免密配置,確保端口互通,防火牆關閉
=============================================================
二 安裝過程:
=============================================================
1.解壓
tar -zxvf hbase-2.2.5-bin.tar.gz -C ../
2. 配置環境變量
轉到root用戶,首先進入到 /etc/profile 目錄,添加相應的配置信息:
#set HBASE environment
export HBASE_HOME=/opt/soft/hbase-2.2.5/
export PATH=$PATH:$HBASE_HOME/bin
3. 然后通過如下命令使得環境變量生效:
source /etc/profile
=============================================================
三 配置過程:
=============================================================
cd conf
1. vim hbase-env.sh
hbase-env.sh添加內容如下
注意:這里的JAVA_HOME請配置成你自己的:
export JAVA_HOME=/opt/soft/jdk1.8.0_261
export JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export HBASE_MANAGES_ZK=false
第一行指定jdk位置
第二行指定額外的classpath元素
第三行是關於jvm的可以不需要
第四行,true表示使用hbase自帶的zookeeper,false表示使用自己的zookeeper(推薦,趁此學一下zookeeper,學了hbase后面的storm跟spark也會去學,后面很多都要使用zookeeper,一勞永逸)。
2. hbase-site.xml內容如下:
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>是否是分布式的,當然</description>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>./tmp</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
<property>
<name>hbase.master</name>
<value>master:60000</value>
<description>指定hbase的主節點與端口號</description>
</property>
<property>
<name>hbase.master.maxclockskew</name>
<value>180000</value>
<description>時間同步允許的時間差</description>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<description>hbase共享目錄,持久化hbase數據,這個需要看你hadoop的核心文件里面配置的是不是master:9000不是的話得改成自己的hadoop里面寫的,參照你的Hadoop的namenode的fs.defaultFS這個參數端口配置,我的hadoop的namenode是放在master上</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
<description>指定zookeeper,我的zookeeper集群就是在這三台機器的</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/soft/hbase-2.2.5/zkdata</value>
<description>zookeeper配置信息快照的位置,目錄會自己創建的</description>
</property>
</configuration>
補充說明:
hbase.rootdir:HBase的數據存儲目錄,由於HBase數據存儲在HDFS上,所以要寫HDFS的目錄,注意路徑端口要和Hadoop的fs.defaultFS端口一致。配置好后,HBase數據就會寫入到這個目錄中,且目錄不需要手動創建,HBase啟動的時候會自動創建。
hbase.cluster.distributed:設置為true代表開啟分布式。
hbase.zookeeper.quorum:設置依賴的ZooKeeper節點,此處加入所有ZooKeeper集群即可。
hbase.zookeeper.property.dataDir:設置ZooKeeper的配置、日志等數據存放目錄。
另外,還有一個屬性hbase.tmp.dir是設置HBase臨時文件存放目錄,不設置的話,默認存放在/tmp目錄,該目錄重啟就會清空。
3. regionservers里面添加從節點機器名
slave1
slave2
=============================================================
四. 將按照配置好的hbase上傳到其他機器
=============================================================
scp -r /opt/soft/hbase-2.2.5/ hadoop@slave1:/opt/soft/
scp -r /opt/soft/hbase-2.2.5/ hadoop@slave2:/opt/soft/
=============================================================
五: 啟動
=============================================================
1.
cd ../bin 轉到bin目錄
start-hbase.sh
停止用start-hbase.sh
2. 啟動后jps查看是否新增了進程
xxxx HMaster
注:啟動起來的前提需要啟動hadoop和zookeeper,最后啟動的話,那么master機器上會多出HMaster進程,slave1和slave2上多出了HRegionServer。
3. Web端UI界面訪問Master-status:
瀏覽器訪問HMaster所在節點的16010端口(http://master:16010)即可查看HBase集群的運行狀態
=============================================================
六 可能出現的問題
=============================================================
出現問題啟動不起來Hbase時
1.需要關閉DFS安全模式
手動關閉安全模式命令如下:
hdfs dfsadmin -safemode leave
2.測試HRegionServer上下線
單獨啟動HRegionServer節點:
啟動集群中所有的regionserver
./hbase-daemons.sh start regionserver
啟動某個regionserver
./hbase-daemon.sh start regionserver
3.如果關閉虛擬機后需要先啟動
(1)[root@hadoop01 ~]# start-dfs.sh
(2)[root@hadoop01 ~]# zkServer.sh start
(3)[root@hadoop01 ~]# start-hbase.sh
查看jps是否存在即可。