zk笔记--windows环境运行zk
网上部署的资料有很多,我照着部署的时候还是遇见了一些问题,在此记录下,以供参考 windows环境 zookeeper-3.3.5 一:下载资源包 点击这里 下载ZK资源 下载链接我使用的是版本,下载好以后,本地解压。二:创建三个文件夹分别命名为server1 server2 server3然后再
网上部署的资料有很多,我照着部署的时候还是遇见了一些问题,在此记录下,以供参考
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 的官方开速使用文档 点击打开链接
更多推荐
所有评论(0)