Apache 多个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

我能够在我的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:/opt/zookeeper/data3

    还分别在上述文件夹中创建了编号为1、2、3的myid文件。 现在每当我尝试以
    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