hbase的安裝與配置(三台集群分布式)


=============================================================

一  安裝前准備

=============================================================

 

下載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是否存在即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM