有段时间没更新博客了,趁着最近有点时间,来完成以前关于集群部署方面的知识。今天主要讲一讲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数据库的相关知识,敬请期待!