多个zookeeper服务器启动问题

时间:2015-03-21 23:58:52

标签: apache apache-zookeeper

我可以在我的Windows机器上运行单个zookeeper实例。但是在单台Windows机器上设置多个zookeeper实例成功。

根据指南,我做了以下步骤:

  1. 在conf文件夹中创建多个zoo.conf文件。结构如下

    zookeeper_home --- |                     conf-- |                           zoo.cfg                           zoo_2.cfg                           zoo_3.cfg

  2. zoo.cfg

  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
    
    1. zoo_2.cfg
    2.  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
      
      1. zoo_3.cfg
      2. 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
        
        1. 由于每个文件都有dataDir,我创建的文件夹为
        2.   

          c:/ opt / zookeeper / data

               

          c:/ opt / zookeeper / data2

               

          C:/选择/动物园管理员/ DATA3

          还在上面每个文件夹中创建了myid文件,编号分别为1,2,3。 现在每当我尝试以c:\opt\zookeeper\bin>zkServer.cmd启动服务器时 它正在抛出一个错误

            

          无法在选举地址localhost / 127.0.0.1:3889

          打开频道2      

          无法在选举地址localhost / 127.0.0.1:3890

          打开频道3      

          java.net.ConnectException:连接被拒绝:连接

          看起来服务器没有启动,但我如何平行启动这些服务器?或者我必须使用任何其他方法。

3 个答案:

答案 0 :(得分:2)

因为默认情况下,zkEnv.cmd将使用zoo.cfg作为默认配置文件。如果执行命令c:\opt\zookeeper\bin>zkServer.cmd,则只有一个实例启动配置zoo.cfg

所以如果你想启动三个实例:

  1. 你要么复制三个zookeeper包,每个都有自己的zoo.cfg,并为每个c:\opt\zookeeper1\bin>zkServer.cmdc:\opt\zookeeper2\bin>zkServer.cmdc:\opt\zookeeper3\bin>zkServer.cmd
  2. 执行以下命令
  3. 或者您可以修改zkEnv.cmd,并使其接受参数作为配置文件,您可以执行zkServer.cmd ../conf/zoo.cfgzkServer.cmd ../conf/zoo2.cfgzkServer.cmd ../conf/zoo3.cfg
  4. 对于备选#2,您还需要更新log4j配置,这样您就可以为每个实例提供不同的日志文件,所以只需复制3个文件夹,然后修改每个zoo.cfg

    检查代码:

    zkEnv.cmd

      

    设置ZOOCFG =%ZOOCFGDIR%\ zoo.cfg

答案 1 :(得分:1)

谷歌有答案 enter image description here

你可以按照detail instruction,我无法复制/粘贴整篇文章,因此附上了图片

答案 2 :(得分:0)

可能您还没有在所有zookeeper实例的dataDir中创建myid文件。
为所有zookeeper实例创建此文件并写入相应的服务器ID,例如1表示第一个实例,2表示第二个实例,3表示第三个实例。
保存所有文件,然后首先重新启动所有三个实例,然后检查它们的状态。