centos7 安装ZooKeeper3.4.9

1下载Zookeeper

地址:http://mirror.bit.edu.cn/apache/zookeeper/

2.1上载压缩文件并解压

这里使用的是CentOS7的操作系统。在opt目录下新建一个名为zookeeper的目录,将下载得到的zookeeper-3.4.9.tar.gz文件上载上去。

3,执行解压命令:

tar-zxvfzookeeper-3.4.9.tar.gz

4.创建数据和日志文件夹

$cd/usr/local/zookeeper-3.4.9

$mkdirdata

$mkdirlogs

5.将zookeeper目录下conf下的zoo_sample.cfg拷贝一份,命名为zoo.cfg

$cpzoo_sample.cfgzoo.cfg

6.修改zoo.cfg配置文件

$vizoo.cfg

tickTime=2000

initLimit=10

syncLimit=5

dataDir=/usr/local/zookeeper/data

dataLogDir=/usr/local/zookeeper/logs

clientPort=2181

7,启动zookeeper

进入到zookeeper的bin目录下,命令:

cd/opt/zookeeper/zookeeper-3.4.9/bin

执行zkServer.sh脚本进行启动,命令是:

./zkServer.shstart

停止服务命令是:

./zkServer.shstop

8,查看zookeeper的状态

如果此时不在zookeeper的bin目录下,先进入到该目录下:

cd/opt/zookeeper/zookeeper-3.4.9/bin

执行命令查看zookeeper状态:

./zkServer.shstatus

[root@test3bin]#./zkServer.shstatus

ZooKeeperJMXenabledbydefault

Usingconfig:/usr/local/zookeeper-3.4.9/bin/../conf/zoo.cfg

Mode:standalone

standalone是单机模式。

9,将ZooKeeper设置为开机启动(可选)

在init.d目录下新建脚本文件

进入到/etc/rc.d/init.d目录下,命令是:

cd/etc/rc.d/init.d

新建一个名为zookeeper的文件,命令是:

touchzookeeper

文件内容是:

#!/bin/bash

#chkconfig:23451090

#description:servicezookeeper

exportJAVA_HOME=/opt/java/jdk1.7.0_121

exportZOO_LOG_DIR=/opt/zookeeper/log

ZOOKEEPER_HOME=/opt/zookeeper/zookeeper-3.4.9

case"$1"in

start)suroot${ZOOKEEPER_HOME}/bin/zkServer.shstart;;

start-foreground)suroot${ZOOKEEPER_HOME}/bin/zkServer.shstart-foreground;;

stop)suroot${ZOOKEEPER_HOME}/bin/zkServer.shstop;;

status)suroot${ZOOKEEPER_HOME}/bin/zkServer.shstatus;;

restart)suroot${ZOOKEEPER_HOME}/bin/zkServer.shrestart;;

upgrade)suroot${ZOOKEEPER_HOME}/bin/zkServer.shupgrade;;

print-cmd)suroot${ZOOKEEPER_HOME}/bin/zkServer.shprint-cmd;;

*)echo"requirestart|start-foreground|stop|status|restart|print-cmd";;

esac

10,执行一系列命令

为新建的/etc/rc.d/init.d/zookeeper文件添加可执行权限,命令是:

chmod+x/etc/rc.d/init.d/zookeeper

把zookeeper这个脚本添加到开机启动项里面,命令是:

chkconfig--addzookeeper

如果想看看是否添加成功,命令是:

chkconfig--list

11,执行测试看是否开机启动

使用命令重启机器,命令是:

reboot

方法一

查看zookeeper的状态

重启机器,然后不手动启动zookeeper的情况下,执行命令:

servicezookeeperstatus

方法二

查看2181端口是否启用,执行命令:

lsof-i:2181

方法三

查看网络状态,执行命令:

netstat-lntup

4报错及解决

4.1servicezookeeperdoesnotsupportchkconfig

执行chkconfig--addzookeeper报错:

servicezookeeperdoesnotsupportchkconfig

问题原因和解决:

/etc/rc.d/init.d/zookeeper脚本中头部没有添加下面这几句话(description可以随便写):

#!/bin/bash

#chkconfig:23451090

#description:servicezookeeper

4.2Errorcontactingservice.Itisprobablynotrunning

执行servicezookeeperstatus报错:

JMXenabledbydefault

Usingconfig:/opt/zookeeper/zookeeper-3.4.9/bin/../conf/zoo.cfg

Errorcontactingservice.Itisprobablynotrunning.

问题原因和解决:

/etc/rc.d/init.d/zookeeper没有配置对,请看3.1.1和3.1.2的配置,里面必须要有exportJAVA_HOME这一句话,后面的路径是你自己的JDK安装路径

至于exportZOO_LOG_DIR=/opt/zookeeper/log这一句的话可有可无,意思是指定zookeeper的启动日志存放目录,如果该目录不存在,你必须手动创建一个。