Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分佈式集羣

    有段時間沒更新博客了,趁着最近有點時間,來完成以前關於集羣部署方面的知識。今天主要講一講Zookeeper+Hadoop+Hbase分佈式集羣的搭建,在我前幾篇的集羣搭建的博客中已經分別講過了Zookeeper和Hadoop的集羣搭建:html

    集羣四部曲(一):完美的Zookeeper集羣搭建java

    集羣四部曲(二):完美的Hadoop集羣搭建node

,剩下的就只有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數據庫的相關知識,敬請期待!

相關文章
相關標籤/搜索