1. 程式人生 > >基於Hadoop搭建Hbase叢集

基於Hadoop搭建Hbase叢集

個人備忘

CentOs 7

環境:jdk1.8 + hadoop-2.8.3 + zookeeper-3.4.6 + hbase-1.2.6

有必要就配置下環境變數

[[email protected] hbase]# vim /etc/profile
[[email protected] hbase]# source /etc/profile

HBASE_HOME=/agui/hbase/hbase-1.2.6     
export  PATH=$HBASE_HOME/bin:$PATH

Hbase 的解壓縮目錄下/conf 下的配置檔案 :

[root@nn conf]# vim hbase-env.sh  
export JAVA_HOME=/agui/jdk/jdk1.8.0_151 #不使用hbase 自帶的 zk export HBASE_MANAGES_ZK=false [root@nn conf]# pwd /agui/hbase/hbase-1.2.6/conf
// 我三個節點的 /etc/hosts 都是類似這樣配置的。
[[email protected] ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain
localhost6 localhost6.localdomain6 0.0.0.0 nn.hadoop 39.17.24.23 dn1.hadoop 39.17.238.11 dn2.hadoop // 步驟二 // 說明,上面配置檔案第一個配置的hdfs地址要和 hadoop 的 core-site.xml 配置的hdfs 地址一致,後面的 /hbase 表示我們再改資料夾下去 作業 // 坑 ,真分散式環境下每臺節點的hosts 對映,自己所在的機器,需配置成0.0.0.0 nn.hadoop 這類的對映。如果設定成外網,hbase 啟動過程中,16000 16020 起不起來。---自己本身配置0.0
.0.0 別配置外網ip 。 內網ip 沒試過。 // 坑二 , hbase-site.xml 和 該節點上的 hadoop 的 core-size.xml 中的hdfs:// ip:埠 中的ip 必須配置成 hosts 對映名,配置成外網ip , hadooop 啟動沒問題,但是啟動hbase 的時候,啟動不起來。訪問 0.0.0.09001 ,connection resfuse 。 // zookeeper 叢集這裡就不帶著配置了。 [email protected] conf]# vim hbase-site.xml <configuration> <property> <name>hbase.rootdir</name> <value>hdfs://nn.hadoop:9001/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>nn.hadoop,dn1.hadoop,dn2.hadoop</value> </property> </configuration>

其他兩個node 節點 如下操作 :

將上一步修改後的hbase-site.xml 檔案 上傳到 node 從節點 。

//說明:namenode 所在的節點,hbase -site .xml 配置的hdfs 地址為 0.0.0.0

[[email protected] conf]# rm -rf hbase-site.xml 
[[email protected] conf]# rz

[[email protected] conf]# ll
total 40
-rw-r--r-- 1 root root 1811 Dec 27  2015 hadoop-metrics2-hbase.properties
-rw-r--r-- 1 root root 4537 Jan 29  2016 hbase-env.cmd
-rw-r--r-- 1 root root 7572 May  8 21:59 hbase-env.sh
-rw-r--r-- 1 root root 2257 Dec 27  2015 hbase-policy.xml
-rw-r--r-- 1 root root 1239 May  8 22:10 hbase-site.xml
-rw-r--r-- 1 root root 4603 May 29  2017 log4j.properties
-rw-r--r-- 1 root root   10 Dec 27  2015 regionservers
[[email protected] conf]# 

regionservers 配置修改


//需注意,hosts 配置的 nn.hadoop 如果在自己的機器上,需要對映成 0.0.0.0 而不是 外網ip 否則有坑。
// 注意  regionservers   三個都要配置

[[email protected] conf]# vim regionservers 
nn.hadoop
dn1.hadoop
dn2.hadoop

繼續配置 Hbase-env.xml :

[root@dn1 conf]# vim hbase-env.sh 
#hadoop 配置檔案路徑
export HBASE_CLASSPATH=/agui/hadoop/hadoop-2.8.3/etc/hadoop


啟動叢集 :

// 啟動hbase叢集之前,要啟動 hadoop-hdfs 叢集 和  zk 叢集
// jdk 1.8  有一個老年代 jvm 引數配置的坑
// jvm 引數配置檔案為 hbase-evn.sh , 刪除掉永久代的 jvm 引數配置即可。 

// 坑二: hbase 從節點上 的 hadoop core-site.xml 中的hdfs:// ip :9001 中的ip 要改成 namenode   hostname 的對映。

// 因為 : hbase 中的 hbase-site.xml 中的hdfs:// 要寫成跟他一樣。如果他倆都寫成了 namenode  的外網ip 則,從節點的hbase 回去本地找9001 埠的hdfs 地址,肯定沒有這個服務,回報 連線被決絕。

結果 :

// 主節點有一個 HMaster 和 HRegionServer 表示配置成功,其他從節點,分別有 HRegionServer 表示無誤。
// 其他錯誤問題可以自己去看日誌。

[[email protected] ~]# jps
10838 NameNode
11191 ResourceManager
11706 HRegionServer
19802 Jps
11036 SecondaryNameNode
2077 QuorumPeerMain
19535 HMaster