前言

dubbo作为现在使用的比较多的分布式框架,它推荐zookeeper作为注册中心,并且zookeeper也是hbase、hadoop的一部分,我们有必要了解一下zookeeper,最起码也得知道zookeeper的一些简单使用。
本文主要介绍在linux环境下zookeeper的安装、配置。不过貌似公司也不会在windows环境下使用zookeeper吧。zookeeper的使用包括单机版与集群版,接下来就开始zookeeper的安装。


文章目录

  • 前言
  • 一、zookeeper单机版的配置
  • 二、zookeeper集群版的配置


一、zookeeper单机版的配置

安装前的准备:

因为是介绍linux环境下zookeeper的安装与使用,那么肯定离不开linux环境咯,这里我用的是vmware虚拟机,centOS7。
zookeeper安装包。
此外,zookeeper的使用是要有Java环境的,因此JDK也是不可缺少的。这些准备完之后就可以开始了。

首先创建zookeeper的用户名与密码:

useradd zookeeper
passwd zookeeper

配置Java环境:

解压JDK压缩包:

tar -xzvf jdk-8u131-linux-x64.tar.gz

windows zookeeper 单机_centos

可以看到,jdk已经解压完毕,cd进入jdk文件夹,pwd打印当前文件夹所在的位置,这个很重要,配置jdk是需要jdk的路径位置的。

vi .bash_profile 编辑文件

windows zookeeper 单机_zookeeper_02


按照图中信息进行配置,注意:JAVA_HOME=****是配置的你的jdk文件所在的路径的。

. .bash_profile 让刚才的置生效。注意,是两个点

查看jdk是否安装好:

windows zookeeper 单机_zookeeper_03


如果出现了这样的情况,说明Java环境已经是有了,可以安装zookeeper了。

解压zookeeper:

tar -xzvf zookeeper-3.4.10.tar.gz

解压完zookeeper之后,进入zookeeper的/conf文件夹下:

windows zookeeper 单机_java_04


复制一份zoo_sample.cfg

cp zoo_sample.cfg zoo.cfg

返回zookeeper的根目录创建一个data,这个data是以后存放zookeeper的一些数据的内存快照、日志之类的信息。

windows zookeeper 单机_centos_05

我们要知道这个data的路径,这个在接下来的zookeeper的配置中是要使用到的:

windows zookeeper 单机_zookeeper_06


保留这个路径地址,回到conf中,编辑zoo.cfg:

windows zookeeper 单机_centos_07


在这个dataDir后面配置刚刚的data目录的位置。注意:是你linux环境下的位置,不是我的。

如果之前的操作没啥问题,那么zookeeper就可以使用了,我们去到bin目录下,

./zkServer.sh start

启动服务端,怎么看服务端启动好了呢?

./zkServer.sh status

出现这样的情况就是服务端启动成功:

windows zookeeper 单机_linux_08

在bin下有个zkCli.sh,通过使用他,我们就可以登录客户端使用zookeeper了:

windows zookeeper 单机_centos_09

windows zookeeper 单机_linux_10

出现这样的情况就说明客户端启动完成,可以开始使用了。

PS:按照步骤一步一步来的话,正常情况下是没啥问题的,不过计算机与计算机的体质是不一样的,有的计算机可以在极端情况下直接死机,如果出现了啥问题,可以查看日志来找下问题:

windows zookeeper 单机_java_11


vi zookeeper.out就可以查看日志了。

二、zookeeper集群版的配置

zookeeper集群中服务器的数量为奇数个,至于为什么是奇数个,以后的文章会介绍到为啥是奇数个。

我们是在一个虚拟机上模拟zookeeper集群的搭建,所以将之前的zookeeper文件复制三份:

windows zookeeper 单机_linux_12


一定要注意啊,这个是你的linux上zookeeper文件的地址,不要直接使用我的文件地址。文件地址查看:pwd。

建议开启三个窗口连接虚拟机。

既然是三个服务器,设置了三个不同的端口,因此我们需要对每个服务器进行设置:首先是第一个,我们进入zookeeper2181文件(注意是复制后的zookeeper2181,不是之前的那个zookeeper文件了),进入到conf文件夹,修改zoo.cfg

windows zookeeper 单机_linux_13


这三个地方是需要注意的,dataDir是你的data文件的位置。

clientPort是端口号,我们这次设置三个服务端,分别是2181、2182、2183,这是第一个服务器,我们设置为2181。

server.是对应的第几个服务器的配置,如果是五个服务器,那么你就应该改成五行配置了。
server.
=A:B:C(A是你的虚拟机的IP地址,B是zookeeper服务器之间的通信端口,C是Leader选举的端口)
配置完之后,保存退出。来到data文件夹中,使用下面的命令:

echo “1” >myid

这个是在data文件夹中生成一个myid的文件,并写入值:1。

这个myid是很重要的,关乎到zookeeper的leader选举。这样第一个服务器就配置好了。

记得将文件夹中的

version-2

zookeeper_server.pid

都删除掉。

在其余的两个服务器中配置相应的信息,因为是一个虚拟机,所以我建议创建三个会话去连接虚拟机,就像我的这样:

windows zookeeper 单机_zookeeper_14


完全是木有啥问题的。

第二个与第三个的配置其实都差不多,

windows zookeeper 单机_zookeeper_15

像第二个服务器,这个修改为2即可,第三个修改为3就OK。还有myid:第二个设置为2,第三个设置为3。

windows zookeeper 单机_centos_16

这样zookeeper集群就搭建好了,启动服务端:

./zkServer.sh start

windows zookeeper 单机_centos_17


看到这里,说明服务端已经启动了(服务端启动需要花费点时间,如果出现了错误,可能是正在启动)。

每个服务器节点可能是跟随者,也可能是领导者或者是观察者,这点会在接下来的文章讲一下关于zookeeper的领导者选举ZAB算法。三个服务器节点启动之后,我们如何登录客户端呢?

windows zookeeper 单机_zookeeper_18


windows zookeeper 单机_分布式_19


windows zookeeper 单机_zookeeper_20


三个客户端分别连接三个服务端,连接成功的标志就是:

windows zookeeper 单机_zookeeper_21


这个时候zookeeper集群就已经创建完成并且可以使用了,接下来就可以快乐地使用zookeeper了。