(13)HBase 1.2.6 叢集部署
阿新 • • 發佈:2019-02-06
1.引言
在前面的部落格中我們介紹HBase
的偽分佈安裝,在本篇部落格中就主要介紹一下HBase
的叢集部署,由於HBase
是一款Hadoop
之上的NoSQL
資料庫,因此我們在安裝HBase
之前需要首先部署Hadoop
的叢集,其次HBase
需要使用zookeeper
進行管理,因此我們也需要搭建zookeeper
叢集,在本篇部落格主要搭建的叢集有:
zookeeper
叢集Hadoop
叢集(由於在本篇部落格中,博主配置了hadoop
的自動切換NameNode
,因此配置Hadoop
叢集之前需要配置zookeeper
)Hbase
叢集
在本篇部落格中使用到的環境有:
- 作業系統為:
Centos6.7
jdk
的版本為:1.7
jdk
的安裝路徑為:/usr/local/jdk
hadoop
的版本為:2.6.1
hadoop
的安裝路徑為:/usr/local/hadoop
zookeeper
的版本為:3.4.9
zookeeper
的安裝路徑為:/usr/local/zookeeper
hbase
的版本為:1.2.6
hbase
的安裝路徑為:/usr/local/hbase
- 使用
root
使用者進行叢集搭建
接下來我將按照下表進行搭建Hadoop
叢集:
HOST 名稱 |
ip 地址 |
執行的程序 |
---|---|---|
hadoop1 | 192.168.159.130 | NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController,HMaster |
hadoop2 | 192.168.159.131 | NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController |
hadoop3 | 192.168.159.132 | DataNode,NodeManger,JournalNode,QuorumPeerMain,HRegionServer |
hadoop4 | 192.168.159.133 | DataNode,NodeManger,HRegionServer |
hadoop5 | 192.168.159.134 | DataNode,NodeManger,HRegionServer |
2. 搭建Hadoop
叢集
如何搭建Hadoop
自動切換NameNode
的叢集,請參考連結:Hadoop 2.6.1 叢集部署—自動切換HA
在上面的連結中介紹瞭如何搭建zookeeper
叢集和hadoop
叢集,搭建完成後,實現了以下表格的內容,因此接下來我們只需要在此基礎上搭建HBase
叢集即可。
HOST 名稱 |
ip 地址 |
執行的程序 |
---|---|---|
hadoop1 | 192.168.159.130 | NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController |
hadoop2 | 192.168.159.131 | NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController |
hadoop3 | 192.168.159.132 | DataNode,NodeManger,JournalNode,QuorumPeerMain |
hadoop4 | 192.168.159.133 | DataNode,NodeManger |
hadoop5 | 192.168.159.134 | DataNode,NodeManger |
3. 搭建HBase
叢集
3.1 解壓HBase並改名
//解壓HBase安裝包
tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local/
//進入/usr/local/目錄
cd /usr/local/
//修改資料夾名稱
mv hbase-1.2.6 hbase
3.2 修改配置
- 修改配置檔案
conf/hbase-env.sh
//編輯conf/hbase-env.sh配置檔案
vim conf/hbase-env.sh
//修改的配置檔案內容
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=false
//備註:命令列模式下,輸入“/HBASE_MANAGES_ZK”可查詢HBASE_MANAGES_ZK的位置
- 修改配置檔案
conf/hbase-site.xml
<!--
hbase.rootdir
代表了hbase在hadoop的地址
value:因為我們配置了hadoop的HA,所以新增叢集的邏輯名cluster1,如果沒有配置HA,寫絕對名稱,比如:hdfs://hadoop1:9000/hbase
hbase.cluster.distributed
hbase的部署模式
value:因為我們是分散式,所以選擇true
hbase.zookeeper.quorum
hbase需要zookeeper排程,設定zookeeper的地址
value:需要和自己情況對應,我的為:hadoop1,hadoop2,hadoop3
-->
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://cluster1/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop1,hadoop2,hadoop3</value>
</property>
</configuration>
- 將
hadoop
的HA
配置拷貝到conf
目錄下面(如果hadoop
未配置HA
,就不需要此步驟)
//將hadoop的hdfs-site.xml拷貝到hbase的conf下面
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/
//將hadoop的core-site.xml拷貝到hbase的conf下面
cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
- 編輯配置檔案
regionservers
//編輯檔案regionservers
vim regionservers
//編輯內容如下:
hadoop3
hadoop4
hadoop5
- 將
hbase
分發到hadoop3,hadoop4,hadoop5
節點
scp -rq /usr/local/hbase hadoop3:/usr/local
scp -rq /usr/local/hbase hadoop4:/usr/local
scp -rq /usr/local/hbase hadoop5:/usr/local
3.3 啟動hbase
叢集
- 命令啟動
hbase
叢集
//啟動叢集之前,首先保證hdfs程序和zookeeper程序啟動正常
bin/start-hbase.sh