Zookeeper在windows下建立伪集群,myid存在,并且内容我设置为1.还是一直报myid is missing

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper在windows下建立伪集群,myid存在,并且内容我设置为1.还是一直报myid is missing相关的知识,希望对你有一定的参考价值。

D:\Zookeeper\zookeeper-3.3.6-server1\bin>zkServer.cmdD:\Zookeeper\zookeeper-3.3.6-server1\bin>java "-Dzookeeper.log.dir=D:\Zookeeper\zookeeper-3.3.6-server1\bin\.." "-Dzookeeper.root.logger=INFO,CONSOLE" -cp "D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\build\classes;D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\build\lib\*;D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\*;D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\lib\*;D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\conf" org.apache.zookeeper.server.quorum.QuorumPeerMain "D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\conf\zoo.cfg"2016-07-07 14:13:21,461 - INFO [main:QuorumPeerConfig@90] - Reading configuration from: D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\conf\zoo.cfg2016-07-07 14:13:21,466 - INFO [main:QuorumPeerConfig@310] - Defaulting to majority quorums2016-07-07 14:13:21,467 - FATAL [main:QuorumPeerMain@83] - Invalid config, exiting abnormallyorg.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing D:\Zookeeper\zookeeper-3.3.6-server1\bin\..\conf\zoo.cfg at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:110) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:99) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:76)Caused by: java.lang.IllegalArgumentException: D:\Zookeeper\zookeeper-3.3.6-server1\zkData\myid file is missing at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:320) at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:106) ... 2 moreInvalid config, exiting abnormallyD:\Zookeeper\zookeeper-3.3.6-server1\bin>endlocalD:\Zookeeper\zookeeper-3.3.6-server1\bin>

我也是在windows下搭建环境,同样问题,最后结合了回答中两位大佬的方法搞定了:

    windows下路径得这么写:D:\\\\Zookeeper\\\\zookeeper-3.3.6-server1\\\\bin\\\\xxx

    myid后缀名删除,无论是.text还是.txt都不行,一律删除就好了

顺便吐槽:同样版本的zk,单机启动时,上述两点都不需要遵守就可以,集群就不行,这是最坑的。如果单机也一样问题没准早就发现了!折腾一上午,靠!PS,旁边研发同学跟我说ZK其实单机和集群完全是两套代码,嗯,看来他说的是对的。

参考技术A 今天我也遇到了这个问题。最后发现,找不到myid文件的原因是在windows环境中,你的myid文件多了后缀名,把后缀名.text或.txt删掉后即可正常启动。 参考技术B

windows 下的路径这么写:D:\\\\Zookeeper\\\\zookeeper-3.3.6-server1\\\\bin\\\\xxx 或者

D:/Zookeeper/zookeeper-3.3.6-server1/bin/xxx 

(斜线) 楼主的路径应该是拷贝来的吧,顺便啰嗦一句,不建议在windows下搭建环境...

参考技术C Winter is a cold season. Though the temperature is very low,but I like it ,I can play with my frends in the playground .I think I can watch TV at home instead of walking outside .So I like winter,because I can do something which is interesting. 参考技术D .text? .txt还比较能理解一点,myid没有后缀

centos7环境下zookeeper的搭建步骤之单机伪集群

首先说明:这里是单机版的伪集群搭建

第一步:下载zookeeper:
zookeeper的下载地址:

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

 第二步:安装:
将下载的zookeeper上传到linux系统中,使用命令解压

tar -zxvf zookeeper-3.4.10.tar.gz

 查看解压的文件:

ls

 

进入zookeeper-3.4.10/conf/目录下:

cd zookeeper-3.4.10/conf/

 在/zookeeper-3.4.10/conf/文件夹下,复制zoo_sample.cfg文件
分别命名为zoo1.cfg\\zoo2.cfg\\zoo3.cfg

修改里面的配置信息:

zoo1.cfg

dataDir=/tmp/zookeeper/data_1
dataLogDir=/tmp/zookeeper/logs_1
server.0=localhost:2287:3387
server.1=localhost:2288:3388
server.2=localhost:2289:3389

 zoo2.cfg

dataDir=/tmp/zookeeper/data_1
dataLogDir=/tmp/zookeeper/logs_1
server.0=localhost:2287:3387
server.1=localhost:2288:3388
server.2=localhost:2289:3389

 zoo3.cfg

dataDir=/tmp/zookeeper/data_1
dataLogDir=/tmp/zookeeper/logs_1
server.0=localhost:2287:3387
server.1=localhost:2288:3388
server.2=localhost:2289:3389

在这里要切记,/tmp/zookeeper/data_1目录自己手动建好,并且创建一个myid文件,以此类推:
对应data_1下的myid值为0,
对应data_2下的myid值为1,
对应data_3下的myid值为2,

最后可以配置一下日志的输出地址:

在zookeeper-3.4.10目录下执行启动命令:

 ./bin/zkServer.sh start zoo1.cfg

 输出信息:

ZooKeeper JMX enabled by default
Using config: /home/zookeeper/zookeeper-3.4.10/bin/../conf/zoo1.cfg
Starting zookeeper ... STARTED

 查看端口是否启动:

 netstat -ntlp

 

以此方法启动其他两个:

 ./bin/zkServer.sh start zoo2.cfg
 ./bin/zkServer.sh start zoo3.cfg

查看端口:netstat -ntlp

查看启动状态:

jps

 输出信息:

查看集群间的关系:zoo1为follower,zoo2为leader,zoo3为follower

停止zoo2:

查看开启的端口:

查看服务状态:zoo3为leader,zoo1为follower

 启动zoo2,并查看:

亲测好使!!!

 

以上是关于Zookeeper在windows下建立伪集群,myid存在,并且内容我设置为1.还是一直报myid is missing的主要内容,如果未能解决你的问题,请参考以下文章

zookeeper初探二 windows环境搭建伪集群

zookeeper windows伪集群搭建

zookeeper学习安装配置运行

ZooKeeper 3.6.2 Windows环境搭建(伪集群详)

win10环境下搭建zookeeper伪集群

centos7环境下zookeeper的搭建步骤之单机伪集群