网上部署的资料有很多,我照着部署的时候还是遇见了一些问题,在此记录下,以供参考

           windows环境         zookeeper-3.3.5   

一:下载资源包

  点击这里  下载ZK资源    下载链接

我使用的是版本,下载好以后,本地解压。


二:

创建三个文件夹分别命名为server1 server2 server3
然后再在每个文件夹下面创建data  dataLog logs文件夹,然后将解压后的zookeeper-3.3.5复制到该目录下,如图所示:


三:

     1:  在每个data文件夹下创建文本文件,命名为myid,注意没有后缀名。

server1中的myid内容为1,server2中为2,server3中为3,这个用来标记zookeeper。

    2: 在每个zookeeper-3.3.5\conf目录下创建分别创建一个文本文件,命名为zoo.cfg,来记录该zk的配置信息,

例如在server1中的内容为:

tickTime=2000

initLimit=5

syncLimit=2

dataDir=D:\\ZK\\server1\\data

dataLogDir=D:\\ZK\\server1\\dataLog

clientPort=8081

server.1=127.0.0.1:8088:9088

server.2=127.0.0.1:8089:9089

server.3=127.0.0.1:8090:9090

        tickTime :基本事件单元,以毫秒为单位。这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

     initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)

初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 

          dataDir :存储内存中数据库快照的位置,顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 

          clientPort :这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

          syncLimit:这个配置项标识 Leader 与 FollowerZK之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 

         server.A =B:C:D  其中 A表示在myid文件的内容即zkserver的id ,B 表示zk所在的机器IP,C表示leader和followZK之间通信的端口,D是当leader失效的时候,通过这个端口推选新的leader。

到此配置完成


四: 启动

 我在windows下安装了Cygwin Terminal ,但是使用linux命令启动的时候总会出现各种问题,导致不能启动成功,最后选择使用cmd启动,进入server1\zookeeper-3.3.5\bin目录

如下:


使用zkServer.cmd启动,各个zkserver

五:访问

       使用zk自带的客户端访问zk, 例如我们访问zkserver1,使用>zkCli.cmd -server 127.0.0.1:8081

如下图所示:



进入后如下所示:


   zk自身带有类似linux命令的一些命令使用ls命令可以查看所有命令,

  创建节点  /myzk :

        create    /myzk  “test”     节点内容为“test”

        创建子目录    create /myzk/child    "child"

 删除节点:

       delete  /myzk

       先删除子目录节点,然后才能删除父节点

 获得节点内容

        get   /myzk

重置内容:

       set     /myzk    "reset"

  查看所有的节点:

       ls     /


#############################################################################################

六、在linux环境下,自定义配置jdk相关参数:

vim bin/zkServer.sh 

添加:

JAVA_HOME=/opt/usr/java/bin/java  ##the path of jdk
JAVA_OPTS="$JAVA_OPTS -Xms1g -Xmx1g"

修改启动参数: 

nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &

为:

$JAVA_HOME $JAVA_OPTS  "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PRO
P}" \
    -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &


status 参数 部分也需要修改为如下:

STAT=`$JAVA_HOME  "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \

否则 没法使用:  sh bin/zkServer.sh status  可以查看 当前zkserver 是leader还是follower 



sh bin/zkServer.sh start  启动即可


注意在使用 sh bin/zkCli.sh  -server  127.0.0.1:8181 连接zk时,如果状态是CONNECTING 那么对zk的操作是不会成功的

状态为  CONNECTED 可以操作


*************************************************************************************************************************************


Do it,Insist it,Enjoy it

*************************************************************************************************************************************



zookeeper 的官方开速使用文档 点击打开链接




Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐