zookeeper集群搭建

说明

zookeeper集群必须是基数台服务器

环境准备

  1. os:linux(可前往官网下载centos)
  2. jdk环境(可前往官网下载jdk)
  3. zookeeper安装包(可前往官网下载zookeeper)

这里安装CentOS和JDK不再重复,详情请自行查阅资料

下载zookeeper

拷贝zookeeper到服务器
拷贝有很多方式,这里我介绍四种常用的方式

  1. 可以通过scp拷贝文件到其他服务器scp src ip:dst,scp具体命令参考man scp
  2. 可以使用wget命令下载,wget具体命令参考man wget
  3. 可以使用ftp工具上传和下载
  4. 可以使用可移动设备拷贝

安装zookeeper

这里不做赘述,有多少台集群服务器下面的操作将执行多少次,这里推荐使用自动化部署脚本安装

1.解压压缩包

这里我们将压缩包解压在/usr/local目录下

tar -zxvf zookeeper-3.4.11.tar.gz -C /usr/local/

2.修改配置

#copy config 
cp /usr/local/zookeeper-3.4.11/conf/zoo_sample.cfg /usr/local/zookeeper-3.4.11/conf/zoo.cfg

编辑zoo.cfg文件,修改dataDir和添加集群服务器配置,这里我是在root目录下的zkdata来存放zookeeper的发数据,所以我设置dataDir=/root/zkdata,这里mini1、mini2、mini3是我们的三台集群服务器的ip地址,2888是我们集群的选举端口,3888是集群内部通信使用,我们可以使用vi编辑器或者直接用echo致命把下面的内容添加进去,这内容和上面的使用命令添加功能一样,只需要做任意一个操作即可

server.1=mini1:2888:3888
server.2=mini2:2888:3888
server.3=mini3:2888:3888

这里我们还需要在设置的dataDir目录下新建一个myid文件,文件内容是个数字,第一台zookeeper我们则可以用1,第二台zookeeper我们可以用2,这个数字不可重复,这里我设置的是mini1的myid是1,mini2的myid是2,mini3的myid是3,这个id主要是为了选举集群的leader时使用.

运行zookeeper

运行前准备

确保各个服务器配置zookeeper的2181、2888、3888三个端口外部可以访问,如果不能访问,请联系管理员开放该三个端口的访问权限

启动zookeeper

/usr/local/zookeeper-3.4.11/bin/zkServer.sh start	

查看zookeeper状态

/usr/local/zookeeper-3.4.11/bin/zkServer.sh status

在启动成功下,我们可以使用status查看当前zookeeper的状态,有一个Mode参数,这个参数值可以取值leader和follower,leader表示这个是主节点

关闭zookeeper

/usr/local/zookeeper-3.4.11/bin/zkServer.sh stop

重启zookeeper

/usr/local/zookeeper-3.4.11/bin/zkServer.sh restart

常见问题

  1. 这里如果不会使用vi编辑器添加和修改配置的朋友,建议使用man vi查看一下vi的用法,或者直接google
  2. 如果配置完了依然无法访问,建议查看防火墙是否开放了2181、2888、3888三个端口,如果没有开放这三个端口,那么我们需要开放这三个端口。如果觉得麻烦,也可以使用service iptables stop关掉防火墙
  3. 如果在启动zookeeper提示启动成功,确认防火墙已经关闭的情况下,但是集群无法正式启动,我们可以查看该服务的三个端口是否被占用,或者服务是否启动成功。
  4. 如果服务也没有被占用,那么我们则可以一个一个启动zookeeper,让每个zookeeper之间有一定的时间间隔,由于我之前是用自动化部署脚本启动zookeeper导致各个服务器的zookeeper几乎是同时启动,导致投票失败,所以集群启动失败。
  5. 如果觉得启动的这一串路径太长了,那么我们可以把这个zookeeper的路径加入到path变量中。
posted @ 2017-12-20 15:22  shenjie2017  阅读(178)  评论(0编辑  收藏  举报