基於Hadoop搭建Hbase叢集
阿新 • • 發佈:2018-12-25
個人備忘
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.0:9001 ,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