Apache 多个zookeeper服务器启动问题
我能够在我的windows计算机上运行单个zookeeper实例。但是在单个windows计算机上成功设置多个zookeeper实例 根据指南,我做了以下步骤:Apache 多个zookeeper服务器启动问题,apache,apache-zookeeper,Apache,Apache Zookeeper,我能够在我的windows计算机上运行单个zookeeper实例。但是在单个windows计算机上成功设置多个zookeeper实例 根据指南,我做了以下步骤: 正在将多个zoo.conf文件创建到conf文件夹中。结构如下 动物园管理员之家---| 形态--| 动物园 动物园2.cfg 动物园3.cfg 动物园 动物园2.cfg 动物园3.cfg 由于每个文件都有dataDir,所以我创建了文件夹作为 c:/opt/zookeeper/data c:/opt/zookeeper/data2 c
c:\opt\zookeeper\bin>zkServer.cmd启动服务器时
它抛出了一个错误
无法在选择地址localhost/127.0.0.1:3889处打开到2的通道
无法在选择地址localhost/127.0.0.1:3890处打开到3的通道
java.net.ConnectException:连接被拒绝:连接
看起来服务器没有启动,但如何并行启动这些服务器?或者我必须使用任何其他方法。因为默认情况下,zkEnv.cmd将使用zoo.cfg作为默认配置文件。如果执行命令c:\opt\zookeeper\bin>zkServer.cmd
,则只有一个实例启动configuration zoo.cfg
因此,如果要启动三个实例:
要么复制三个zookeeper包,每个包都有自己的zoo.cfg,然后对每个c:\opt\zookeeper1\bin>zkServer.cmd
,c:\opt\zookeeper2\bin>zkServer.cmd
,c:\opt\zookeeper3\bin>zkServer.cmd
或者您可以修改zkEnv.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
可能您还没有在所有zookeeper实例的dataDir中创建myid文件
为所有zookeeper实例创建此文件,并写入相应的服务器id,例如1表示第一个实例,2表示第二个实例,3表示第三个实例。
保存所有文件,首先重新启动所有三个实例,然后检查它们的状态。谷歌有答案
您只需按照,我无法复制/粘贴整篇文章,因此附上图片您启动了所有三台服务器吗?这些例外是ZooKeeper与合奏者互动的正常部分。ZooKeeper被设计成能够处理不与仲裁中的其他服务器通信的情况。一旦它们全部启动,您可能会看到这些异常消失。这是真的,但是如何启动所有3台服务器呢?
tickTime=2000
initLimit=10
syncLimit=5
dataDir=c:/opt/zookeeper/data
clientPort=2181
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
dataDir=c:/opt/zookeeper/data2
clientPort=2182
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
tickTime=2000
initLimit=10
syncLimit=5
dataDir=c:/opt/zookeeper/data3
clientPort=2183
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890