您可能没有在所有zookeeper实例的dataDir中创建myid文件。 为所有zookeeper实例创建此文件,并为第一个实例写入相应的服务器ID,例如1,第二个实例为2,第三个实例为3。 保存所有文件并首先重新启动所有三个实例,然后检查其状态。
谷歌有答案
你可以按照 细节说明 ,我无法复制/粘贴整篇文章,因此附上了图片
因为默认情况下,zkEnv.cmd将使用zoo.cfg作为默认配置文件。如果你执行你的命令 c:\opt\zookeeper\bin>zkServer.cmd ,然后只有一个实例启动配置zoo.cfg
c:\opt\zookeeper\bin>zkServer.cmd
所以如果你想启动三个实例:
c:\opt\zookeeper1\bin>zkServer.cmd
c:\opt\zookeeper2\bin>zkServer.cmd
c:\opt\zookeeper3\bin>zkServer.cmd
zkServer.cmd ../conf/zoo.cfg
zkServer.cmd ../conf/zoo2.cfg
zkServer.cmd ../conf/zoo3.cfg
对于备选#2,您还需要更新log4j配置,因此每个实例可以有不同的日志文件,所以只需复制3个文件夹,然后修改每个zoo.cfg
检查代码:
zkEnv.cmd
设置ZOOCFG =%ZOOCFGDIR%\ zoo.cfg