一、虚拟机环境
见我的另一篇博客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
完成后,可以看到如下效果。
三、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
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文件
四、启动
1、三台机器分别启动
bin/zkServer.sh start
2、三台机器都启动完后
bin/zkServer.sh status 查看启动是否成功,三台机器会选择一台做为leader,另两台为follower
客户端命令
./zkCli.sh -server centos1:2181 (因为是集群,机器名随便选一台即可)
五、问题解决
1、Error contracting service. It is probably not running
解决方法:
检查防火墙是否关闭,service iptables stop;
检查三台机器是否均已启动,可通过jps查看,有QuorumPeerMain进程代表当前机器zookeeper已经启动(但启动成功与否无法判断)
查看日志文件,根据日志文件判断。默认日志文件路径 bin/zookeeper.out