在使用dubbo等需要用到zookeeper,之前window下本地部署,启动一直有问题,后面折腾了下才部署成功,此次记录下来。

  将zookeeper下载之后,解压到指定目录即可,无需安装。例如:解压到D:\zookeeper-3.5.0-alpha\zookeeper-3.5.0-alpha。(下载的是3.5.0版本) 
解压好了之后,进入conf文件夹,会发现有2个文件,log4j.properties和zoo_sample.cfg这2个文件。对于zoo_sample.cfg文件,需要先将文件名字修改成zoo.cfg文件才行,接下来修改里面配置,如下所示,给出了注释和简单的配置信息。

  

 1 # ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。例如,session的最小超时时间是2*tickTime。
 2 tickTime=2000
 3
 4 # Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。Leader允许F在 initLimit 时间内完成这个工作。
 5 initLimit=10
 6
 7 # 在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。
 8 syncLimit=5
 9
10 # 存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。建议同时配置参数dataLogDir, 事务日志的写性能直接影响zk性能。
11 dataDir=D:/Program Service Files/zookeeper-3.5.0-alpha/data
12
13 # 事务日志输出目录。尽量给事务日志的输出配置单独的磁盘或是挂载点,这将极大的提升ZK性能。
14 dataLogDir=D:/Program Service Files/zookeeper-3.5.0-alpha/dataLog
15
16 # 客户端连接server的端口,即对外服务端口,一般设置为2181吧。
17 clientPort=2181
18
19 # 单个客户端与单台服务器之间的连接数的限制,是ip级别的,默认是60,如果设置为0,那么表明不作任何限制。
20 #maxClientCnxns=60
21
22 #
23 # Be sure to read the maintenance section of the
24 # administrator guide before turning on autopurge.
25 #
26 # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
27 #
28 # The number of snapshots to retain in dataDir
29 #autopurge.snapRetainCount=3
30 # Purge task interval in hours
31 # Set to "0" to disable auto purge feature
32 #autopurge.purgeInterval=1

  注:dataDir和dataLogDir文件夹,注意window下的/和\的处理方式。

  启动错误

  配置完成之后,就可以进入bin目录下,启动zkService.cmd了,当页面滚动时,证明启动成功了。 
  但是,我们会经常遇到双击启动时,一闪而过的场景,此时会什么错误信息都看不到,最好的方式就是采取cmd启动,这样能看到报错信息。 
  在此文件夹打开cmd执行如下命令,就会看到报错信息了。

  问题1

  当启动zkService.cmd时,提示如下错误。找不到JAVA_HOME,提示没有正确设置,检查了下是有设置的。

D:\Program Service Files\zookeeper-3.5.0-alpha\bin>zkServer.cmd
系统找不到指定的路径。
Error: JAVA_HOME is incorrectly set.D:\Program Service Files\zookeeper-3.5.0-alpha\bin>call  "-Dzookeeper.log.dir=D:
\Program Service Files\zookeeper-3.5.0-alpha\bin\.." "-Dzookeeper.root.logger=IN
FO,CONSOLE" -cp "D:\Program Service Files\zookeeper-3.5.0-alpha\bin\..\build\cla
sses;D:\Program Service Files\zookeeper-3.5.0-alpha\bin\..\build\lib\*;D:\Progra
m Service Files\zookeeper-3.5.0-alpha\bin\..\*;D:\Program Service Files\zookeepe
r-3.5.0-alpha\bin\..\lib\*;D:\Program Service Files\zookeeper-3.5.0-alpha\bin\..
\conf" org.apache.zookeeper.server.quorum.QuorumPeerMain "D:\Program Service Fil
es\zookeeper-3.5.0-alpha\bin\..\conf\zoo.cfg"
'"-Dzookeeper.log.dir=D:\Program Service Files\zookeeper-3.5.0-alpha\bin\.."' 不
是内部或外部命令,也不是可运行的程序
或批处理文件。D:\Program Service Files\zookeeper-3.5.0-alpha\bin>endlocal

  通过查找google发现,是因为我们的java安装在了如下目录:

C:\Program Files\Java

  这个路径中,program files含有空格,所以导致找不到java路径。此时,可在bin同级目录下,找到 
  zkEnv.cmd这个命令。用文本方式打开,可以看到如下内容:

 1 set ZOOCFG=%ZOOCFGDIR%\zoo.cfg
 2
 3 @REM setup java environment variables
 4
 5 if not defined JAVA_HOME (
 6   echo Error: JAVA_HOME is not set.
 7   goto :eof
 8 )
 9
10 if not exist %JAVA_HOME%\bin\java.exe (
11   echo Error: JAVA_HOME is incorrectly set.
12   goto :eof
13 )
14
15 set JAVA=%JAVA_HOME%\bin\java

  报错信息刚好是找不到java.exe,此时进行修改即可。对路径加入”“处理,如下所示:

 1 if not defined JAVA_HOME (
 2   echo Error: JAVA_HOME is not set.
 3   goto :eof
 4 )
 5
 6 if not exist "%JAVA_HOME%\bin\java.exe" (
 7   echo Error: JAVA_HOME is incorrectly set.
 8   goto :eof
 9 )
10
11 set JAVA=%JAVA_HOME%\bin\java

  如上所示,这样就能找到java路径了。正确启动了。 
  类似的还能发现会出现【JAVA_HOME is not set】、【JAVA_HOME is incorrectly set】处理方式都一样了。 
  注:google说的是因为program files含有空格导致的,按照目前实验来看,估计还是因为window下\和/的问题导致的,引号之后,就能全部当作字符串路径处理了,需要做个实验看看。

  问题2

  当修改完成之后,再次cmd下启动,会发现还会报错,提示 ‘C:\Program’ 不是内部或外部命令,也不是可运行的程序或批处理文件 报错信息如下:

 1 D:\Program Service Files\zookeeper-3.5.0-alpha\bin>zkServer.cmd
 2
 3 D:\Program Service Files\zookeeper-3.5.0-alpha\bin>call C:\Program Files\Java\jd
 4 k1.7.0_79\bin\java "-Dzookeeper.log.dir=D:\Program Service Files\zookeeper-3.5.0
 5 -alpha\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "D:\Program Service Fi
 6 les\zookeeper-3.5.0-alpha\bin\..\build\classes;D:\Program Service Files\zookeepe
 7 r-3.5.0-alpha\bin\..\build\lib\*;D:\Program Service Files\zookeeper-3.5.0-alpha\
 8 bin\..\*;D:\Program Service Files\zookeeper-3.5.0-alpha\bin\..\lib\*;D:\Program
 9 Service Files\zookeeper-3.5.0-alpha\bin\..\conf" org.apache.zookeeper.server.quo
10 rum.QuorumPeerMain "D:\Program Service Files\zookeeper-3.5.0-alpha\bin\..\conf\z
11 oo.cfg"
12 'C:\Program' 不是内部或外部命令,也不是可运行的程序
13 或批处理文件。
14
15 D:\Program Service Files\zookeeper-3.5.0-alpha\bin>endlocal

  根据前面来看,估计还是window下的设置问题,和前面一样,此时继续修改zkEnv.cmd文件,修改如下:

1 set JAVA="%JAVA_HOME%\bin\java"

  将最后的set JAVA也用引号处理了,这样修改之后,再次启动就好了。

window下zookeeper的下载启动和报错等问题相关推荐

  1. window环境启动kafka报错:此时不应有../config/log4j.properties

    window7下启动kafka报错如下: 背景: 1.在官网下载kafka_2.10-0.10.2.0.tgz: 2.将第一步的压缩包解压到D:\Program Files (x86)目录下: 3.启 ...

  2. 痞子衡嵌入式:导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之QE bit...

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是导致串行NOR Flash在i.MXRT下无法正常下载/启动的常见因素之QE bit. i.MXRT系列MCU发布已两年多了,基于i.M ...

  3. windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error...

    windows下配置redis集群,启动节点报错:createing server TCP listening socket *:7000:listen:Unknown error 学习了:https ...

  4. Eclipse启动项目正常,放到tomcat下单独启动就报错的 一例

    一个老的ssh的项目,进行二次开发(增加一些新功能)后, 首先用Eclipse中集成的Tomcat启动没有任何问题,但是把启动后的webapps下得目录放到 windows的普通tomcat下单独启动 ...

  5. ubuntu下启动vlc报错“VLC is not supposed to be run as root“

    问题: ubuntu下启动vlc报错"VLC is not supposed to be run as root" VLC is not supposed to be run as ...

  6. java项目如何启动tomcat服务器,Java web项目启动Tomcat报错解决方案

    Java web项目启动Tomcat报错解决方案 点击运行项目时显示 A Java Exception has occurred. 'Starting Tomcat v9.0 Server at lo ...

  7. 禅道启动mysql报错_测试工具之在Linux服务器上部署禅道Bug管理系统

    Linux本次使用到的命令行记录 链接服务器的命令 ssh [root@www.leimingtech.net](mailto:root@www.leimingtech.net) -p 22233 - ...

  8. 在weblogic12c中启动工程报错缺失BeanFactoryAware

    1.项目非spring项目,没有引用任何spring相关的包. 2.在tomcat下启动不报错. 3.放到weblogic10g中不报错,放到12c中报错. 报错信息如下: weblogic.mana ...

  9. eclipse找不到java方法,Linux启动eclipse报错找不到java环境解决方法

    在Linux mint下,前几天还用得很好的的eclipse,今天开机不知为什么这样. Eclipse 3.6 在 linux mint 12 可以在终端顺利启动Eclipse,但是鼠标双击,或者用起 ...

最新文章

  1. ordfilt2函数功能说明
  2. 从冲咖啡看统计过程控制
  3. windows下使用git管理github项目
  4. 中班音乐 机器人教案_【李小娜老师优秀教案分享】中班音乐活动小树叶教案及反思...
  5. micropython做产品开发_关于MicroPython是否可以真正用在产品开发的讨论
  6. python读取一行的函数_Python linecache.getline()读取文件中特定一行的脚本
  7. 千万别把有本事挣钱的人,当成臭奸商
  8. spring AOP 代理(静态与动态+使用cglib实现)
  9. 计算机网络与综合布线系统设计,计算机网络综合布线系统设计
  10. Excel中怎么查找重复值
  11. 腾讯企业邮箱 java_java发送腾讯企业邮件-可用于发送邮箱验证码
  12. js正则大于0小于100_js正则表达式大于0的正整数,小数可以有,...
  13. 【MongoDB-MongoVUE图像管理工具】
  14. mysql 锁(三)
  15. 微信故障之后发生的三大怪现象
  16. (Xposed)编写第一个Xposed模块
  17. 微信小程序使用云函数进行mysql操作
  18. 利弗莫尔的操作系统到底是怎样的?
  19. 炎炎夏日,自己做饭吃
  20. 01-名词冠词(思维导图记录)

热门文章

  1. Android:布局单位换算
  2. [转] android学习和广告平台赚钱
  3. php 未实例化类调用方法的问题
  4. Elasticsearch--入门-_put post方式添加数据---全文检索引擎ElasticSearch工作笔记005
  5. MyCat分布式数据库集群架构工作笔记0018---高可用_单表存储千万级_海量存储_水平分表划分原则
  6. ASP.NET工作笔记014---用VB.NET封装服务器端控件
  7. 大数据之_亿级分布式日志管理ELK_工作笔记001_ELK认识介绍
  8. 正则表达式学习笔记007--字符组简记法1
  9. 跑通im2txt 程序(1)
  10. 权限细粒度管理(转)