您的位置:首页 > 运维架构 > Linux

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

2016-02-23 15:26 585 查看
一、单机模式的配置

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息