zookeeper-3.4.8 集群搭建

一、虚拟机环境

见我的另一篇博客http://www.cnblogs.com/xckk/p/6000881.html

zookeeper是用JAVA编写,因此需要安装JDK环境,centos下安装JDK可参考:

http://www.centoscn.com/image-text/install/2014/0827/3585.html

二、zookeeper安装

计划安装三台zookeeper集群,centos1、centos2、centos3,以centos1为例

1、下载zookeeper,官网下载:http://apache.fayea.com/zookeeper/,我下载的是3.4.8版本

2、下载后,文件拷贝到/root/目录下,可以用ftp,也可以用scp

scp zookeeper-3.4.8.tar.gz root@centos1:/root/

3、解压:tar -zxvf zookeeper-3.4.8.tar.gz

4、建立软链,目的是应用程序都放在/home目录下

ln –sf /root/zookeeper-3.4.8 /home/zookeeper-3.4

完成后,可以看到如下效果。

image

三、zookeeper集群配置(三台机器都要配置)

1、conf/zoo.cfg文件

修改 dataDir=/opt/zookeeper

端口号clientPort=2181

最后面增加

server.1=centos1:2888:3888

server.2=centos2:2888:3888

server.3=centos3:2888:3888

image

2、/opt/zookeeper目录下创建myid文件,目录不存在就手动创建目录。

centos1的myid文件内容设置为1

centos1的myid文件内容设置为2

centos1的myid文件内容设置为3

(分别对应zoo.cfg配置的的server.1、server.2、server.3中的1,2,3)

下图是centos1的myid文件

image

四、启动

1、三台机器分别启动 

bin/zkServer.sh start

2、三台机器都启动完后

bin/zkServer.sh status 查看启动是否成功,三台机器会选择一台做为leader,另两台为follower

clipboard

客户端命令

./zkCli.sh -server centos1:2181   (因为是集群,机器名随便选一台即可)

image

五、问题解决

1、Error contracting service. It is probably not running

image

解决方法:

检查防火墙是否关闭,service iptables stop;

检查三台机器是否均已启动,可通过jps查看,有QuorumPeerMain进程代表当前机器zookeeper已经启动(但启动成功与否无法判断)

image

查看日志文件,根据日志文件判断。默认日志文件路径 bin/zookeeper.out

原文地址:https://www.cnblogs.com/xckk/p/6001282.html