linux下zookeeper集群安装配置(3.5.1版)

﹥>﹥吖頭↗ 提交于 2019-12-02 08:46:42

一、单机模式的配置

1.1、下载地址:  http://www.apache.org/dyn/closer.cgi/zookeeper/

       他会根据你的ip来推荐一个具体的站点:  我这边推荐的是 http://mirrors.noc.im/apache/zookeeper/

1.2、 下载后上传到服务器的指定目录下:

        我这边是在app的目录下新建的zookeeper,下载的zookeeper-3.5.1-alpha.tar.gz

1.3、解压:tar -zxvf zookeeper-3.5.1.tar.gz 

1.4、配置文件:在conf目录下 cp zoo_sample.cfg  zoo.cfg,创建配置文件zoo.cfg。 修改dir   log的配置在这个目录下的log4j.properties

tickTime=2000
  dataDir=/app/zookeeper/zooData/tmpData  数据的持久化到这个目录下,以及集群的配置也是需要的
  clientPort=2181
initLimit=10
    tickTime=2000
1.5配置环境变量:为了今后操作方便,我们需要对Zookeeper的环境变量进行配置,方法如下在/etc/profile文件中加入如下内容:


   export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.5.1-alpha/bin
    export PATH=.:HADOOP H OME/bin: ZOOKEEPER_HOME/bin:JAVA H OME/bin: PATH
1.6启动ZooKeeper的Server:zkServer.sh start;关闭ZooKeeper的Server:zkServer.sh stop

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
  [zk: localhost:2181(CONNECTED) 0]   

最后显示connected表示OK了,  就可以在里面敲命令了 比如  ls /  查看根目录下的文件结构


二 集群模式配置:

  集群下的:成员一般建议是2N+1的形式,1为leader,N个再跑,N个备份,后续在探讨

2.1  在之前的单机模式下修改:

   选取了三台服务器来配置  ,主要是下面加入的server的列表,一定要注意server的序号,这个序号要和dataDir的

clientPort=2181
dataDir=/app/was7/zookeeper/server1/data/zookeeper
syncLimit=5
initLimit=10
tickTime=2000
server.1=10.182.211.250:2888:3888
server.2=10.182.161.214:2888:3888
server.3=10.182.243.110:2888:3888
    2.2 这台服务器是250的,现在需要在dataDir的目录下新建一个myid的文件 ,在datadir的目录下输入: touch myid  创建文件

   可以vi myid 打开文件输入 1 然后点esc键,再输入:wq  来退出,也可以  touch myid   然后echo >> 1 myid  

   这是要保证你的server后跟的后缀 1 2 3 对应的ip要和对应的myid里面的数字对应,

   比如: 250的是server1  所以他下面的myid 里面的内容是 1   如果是214的服务器那就是 2 就这样

  

 2.3 

   配置其他两台服务器

   注意一点: 10.182.243.110:2888:3888   这个配置的时候后面一定要没有空格等字符,否则会启动报错


 2.4 分别启动服务,第一台启动的时候会报错,因为他找不到集群下的服务,等到所有的都起来了,就不报错了


    然后启动后,conf的配置会发生变化:

   

   
      他把集群的配置单独放到了一个文件中,这可能是3.5以后的吧,但是只是配置完生效后变成这样子的,配置还是在zoo.cnf中写的



三 遇到的问题:

 Invalid config, exiting abnormally
    org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Address unresolved: 10.182.243.110:3888  
        at org.apache.zookeeper.server.quorum.QuorumPeer$QuorumServer.<init>(QuorumPeer.java:221)
        at org.apache.zookeeper.server.quorum.flexible.QuorumMaj.<init>(QuorumMaj.java:89)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.createQuorumVerifier(QuorumPeerConfig.java:498)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseDynamicConfig(QuorumPeerConfig.java:531)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.setupQuorumPeerConfig(QuorumPeerConfig.java:504)
        at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:157)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:110)
        at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:79)


这个就是当时copy的时候10.182.243.110:3888  后面带了空格,所以他找不到这个端口,so  一定要注意linux下的空格


只要把空格去掉就OK了





   export ZOOKEEPER_HOME=/app/zookeeper/zookeeper-3.5.1-alpha/bin
    export PATH=.:HADOOP H OME/bin: ZOOKEEPER_HOME/bin:JAVA H OME/bin: PATH

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!