有段時間沒更新博客了,趁着最近有點時間,來完成以前關於集羣部署方面的知識。今天主要講一講Zookeeper+Hadoop+Hbase分佈式集羣的搭建,在我前幾篇的集羣搭建的博客中已經分別講過了Zookeeper和Hadoop的集羣搭建:html
,剩下的就只有Hbase集羣了,下面就來講一下基於Zookeeper和Hadoop的Hbase分佈式集羣的搭建。數據庫
1、環境:一樣的啓用三個節點,分別是虛擬機slave01,slave02,slave03,基於以前已經搭建好的環境,包括JDK、Zookeeper、Hadoopvim
2、Hbase配置(本身解壓哈)服務器
配置前,着重說一下:版本匹配問題,若出現不匹配的狀況,後面啓動會失敗,關於版本匹配你們能夠參考該連接內容:session
https://blog.csdn.net/anningzhu/article/details/60468723分佈式
接下來了解一下HMaster、HRegionServer,這裏準備將slave01做爲HMaster,slave0二、slave03做爲HRegionServer,下面的操做都是以這個爲前提展開的,請你們作好戰前溫習,以防不知下面的操做的意義,開始配置吧:oop
關閉防火牆,你們切記:spa
systemctl stop firewalld #只在本次運用時生效,下次開啓機器時需重複此操做 或 systemctl disable firewalld #此命令在下次重啓時生效,將永久關閉防火牆
(1)將Hbase添加到環境變量中
vim /etc/profile
添加HBASE_HOME,修改以下:
JAVA_HOME=/usr/java/jdk1.8.0_161 JRE_HOME=/usr/java/jdk1.8.0_161/jre SCALA_HOME=/usr/local/scala HADOOP_HOME=/usr/local/hadoop SPARK_HOME=/usr/local/spark ZOOKEEPER_HOME=/usr/local/zookeeper HBASE_HOME=/usr/local/hbase KAFKA_HOME=/usr/local/kafka PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$ZOOKEEPER_HOME/bin:$HBASE_HOME/bin:$KAFKA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME SCALA_HOME HADOOP_HOME SPARK_HOME ZOOKEEPER_HOME HBASE_HOME KAFKA_HOME PATH CLASSPATH
使文件生效,運行命令:
source /etc/profile
(2)修改HBase目錄conf下配置文件hbase-env.sh:
export JAVA_HOME=/usr/java/jdk1.8.0_161/ export HBASE_PID_DIR=/usr/local/hbase/pid/ export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop/ export HBASE_MANAGES_ZK=false
其中,pid本身手動在HBase目錄下新建,ZK=false表示不使用自身的Zookeeper。
(3)修改HBase目錄conf下配置文件hbase-site.xml:
<configuration> <property> <name>hbase.root.dir</name> <value>hdfs://slave01:9000/hbase</value> <description>設置 hbase 數據庫存放數據的目錄</description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>打開 hbase 分佈模式</description> </property> <property> <name>hbase.master</name> <value>slave01</value> <description>指定 hbase 集羣主控節點</description> </property> <property> <name>hbase.tmp.dir</name> <value>/usr/tmp/hbase</value> <description>hbase的一些臨時文件存放目錄。</description> </property> <property> <name>hbase.zookeeper.quorum</name> <value>slave01,slave02,slave03</value> <description> 指定 zookeeper 集羣節點名</description> </property> <property> <name>zookeeper.session.timeout</name> <value>60000000</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> <description> 鏈接到zookeeper的端口,默認是2181</description> </property> </configuration>
其中,hbase.root.dir注意和Hadoop保持一致。
(4)修改HBase目錄conf下配置文件regionservers:
slave02 slave03
添加的是做爲datanode的節點。
(5)拷貝配置文件到其餘服務器
若不想一個一個的進行文件配置,能夠將已經配置好的文件拷貝到其餘須要的服務器上,注意拷貝成功後執行命令:source /etc/profile使之生效:
//slave01上的/etc/profile文件拷貝到slave02 scp -r /etc/profile slave02:/etc/profile //slave01上的/usr/local/hadoop文件夾整個目錄拷貝到slave02 scp -r /usr/local/hbase slave02:/usr/local/
節點slave03同上。以上配置即初步完成了HBase的配置,下面是啓動驗證的時候了,在這以前,最好重啓虛擬機,保證全部的配置生效,切記,重啓後先關閉防火牆,w(゚Д゚)w。
3、啓動HBase集羣並驗證
由於咱們使用的是Zookeeper+Hadoop+HBase,因此啓動前,先要啓動Zookeeper和Hadoop,分別依次啓動Zookeeper和Hadoop,保證正常啓動,請參考以前的博客。正常啓動後以下:
[hadoop@slave01 sbin]$ jps 2880 QuorumPeerMain 3656 ResourceManager 3945 Jps 3449 SecondaryNameNode 3213 NameNode
[hadoop@slave02 bin]$ jps 3079 Jps 3018 NodeManager 2876 DataNode 2687 QuorumPeerMain
[hadoop@slave03 bin]$ jps 2644 QuorumPeerMain 3066 Jps 2938 NodeManager 2794 DataNode
接下來啓動HBase,以下:
[hadoop@slave01 bin]$ ./start-hbase.sh SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] running master, logging to /usr/local/hbase/logs/hbase-hadoop-master-slave01.out slave02: running regionserver, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-regionserver-slave02.out slave03: running regionserver, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-regionserver-slave03.out
顯示多出的進程爲HMaster:
[hadoop@slave01 sbin]$ jps 2880 QuorumPeerMain 4387 HMaster 4518 Jps 3656 ResourceManager 3449 SecondaryNameNode 3213 NameNode
節點slave02和slave03多出的進程爲HRegionServer:
[hadoop@slave02 bin]$ jps 3424 HRegionServer 3018 NodeManager 2876 DataNode 3485 Jps 2687 QuorumPeerMain
好了,上面關於HBase集羣已經成功啓動了。
4、查看hbase管理界面
訪問 slave01:16010,以下:
點擊上圖Region Servers中的節點slave02或者slave03便可查看其對應信息:
經過上面咱們能夠查看hbase相關信息,很是實用。
好了,關於這方面的配置已經結束了,下篇將說下HBase數據庫的相關知識,敬請期待!