zk笔记–windows环境运行zk

  • Post author:
  • Post category:其他


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

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





Follower


ZK之间发送消息,请求和应答时间长度,最长不能超过多少个


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 的官方开速使用文档

点击打开链接





版权声明:本文为yeshenrenjin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。