• 一.环境准备

Centos6.5_x86_64 

jdk-7u71-linux-x64.rpm 

zookeeper-3.4.8.tar.gz

mkdir /zookeeper/data


  • 二.安装、

  •  mkdir -pv /usr/java

  • [root@zookeeper1 java]# tar zxvf zookeeper-3.4.8.tar.gz

  • mv zookeeper-3.4.8 zookeeper

  • cd zookeeper

  • cd conf

  • mv zoo_sample.cfg zoo.cfg

  • vi zoo.cfg

  • # The number of milliseconds of each tick

  • tickTime=2000

  • # The number of ticks that the initial

  • # synchronization phase can take

  • initLimit=10

  • # The number of ticks that can pass between

  • # sending a request and getting an acknowledgement

  • syncLimit=5

  • # the directory where the snapshot is stored.

  • # do not use /tmp for storage, /tmp here is just

  • # example sakes.

  • dataDir=/zookeeper/data     

  • # the port at which the clients will connect

  • clientPort=2181

  • # the maximum number of client connections.

  • # increase this if you need to handle more clients

  • #maxClientCnxns=60

  • #

  • # Be sure to read the maintenance section of the

  • # administrator guide before turning on autopurge.

  • #

  • # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance

  • #

  • # The number of snapshots to retain in dataDir

  • #autopurge.snapRetainCount=3

  • # Purge task interval in hours

  • # Set to "0" to disable auto purge feature

  • #autopurge.purgeInterval=1


  • dataLogDir=/zookeeper/logs

  • server.25=192.168.81.25:2888:3888

  • server.26=192.168.81.26:2888:3888

  • server.27=192.168.81.27:2888:3888

##################################################################################


### dataDir=/zookeeper/data和dataLogDir=/zookeeper/logs (这个路径是数据路径,自己建立)

这里的server.25是个重点,自己定义,用在myid里。

在/zookeeper/data下

touch myid

echo 25 > myid (三台不一样)

这里用的是IP,如果用主机名的话,就要修改/etc/hosts


如果这里没有这个myid文件或者值不对,就会出现启动报错

  1. [dev@localhost bin]$  ./zkServer.sh start-foreground  

  2. JMX enabled by default  

  3. Using config: /home/dev/zookeeper/zookeeper2/bin/../conf/zoo.cfg  

  4. 2015-03-12 16:09:35,422 [myid:] - INFO  [main:QuorumPeerConfig@101] - Reading configuration from: /home/dev/zookeeper/zookeeper2/bin/../conf/zoo.cfg  

  5. 2015-03-12 16:09:35,426 [myid:] - INFO  [main:QuorumPeerConfig@334] - Defaulting to majority quorums  

  6. 2015-03-12 16:09:35,434 [myid:0] - INFO  [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3  

  7. 2015-03-12 16:09:35,434 [myid:0] - INFO  [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0  

  8. 2015-03-12 16:09:35,435 [myid:0] - INFO  [main:DatadirCleanupManager@101] - Purge task is not scheduled.  

  9. 2015-03-12 16:09:35,455 [myid:0] - INFO  [main:QuorumPeerMain@127] - Starting quorum peer  

  10. 2015-03-12 16:09:35,472 [myid:0] - INFO  [main:NIOServerCnxnFactory@94] - binding to port 0.0.0.0/0.0.0.0:2182  

  11. 2015-03-12 16:09:35,500 [myid:0] - INFO  [main:QuorumPeer@913] - tickTime set to 2000  

  12. 2015-03-12 16:09:35,501 [myid:0] - INFO  [main:QuorumPeer@933] - minSessionTimeout set to -1  

  13. 2015-03-12 16:09:35,501 [myid:0] - INFO  [main:QuorumPeer@944] - maxSessionTimeout set to -1  

  14. 2015-03-12 16:09:35,502 [myid:0] - INFO  [main:QuorumPeer@959] - initLimit set to 10  

  15. 2015-03-12 16:09:35,519 [myid:0] - ERROR [main:QuorumPeer@171] - Setting LearnerType to PARTICIPANT but 0 not in QuorumPeers.  

  16. 2015-03-12 16:09:35,530 [myid:0] - INFO  [main:QuorumPeer@429] - currentEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation  

  17. 2015-03-12 16:09:35,591 [myid:0] - INFO  [main:QuorumPeer@444] - acceptedEpoch not found! Creating with a reasonable default of 0. This should only happen when you are upgrading your installation  

  18. 2015-03-12 16:09:35,598 [myid:0] - ERROR [main:QuorumPeerMain@89] - Unexpected exception, exiting abnormally  

  19. java.lang.RuntimeException: My id 0 not in the peer list  

  20.      at org.apache.zookeeper.server.quorum.QuorumPeer.startLeaderElection(QuorumPeer.java:479)  

  21.      at org.apache.zookeeper.server.quorum.QuorumPeer.start(QuorumPeer.java:411)  

  22.      at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:151)  

  23.      at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)  

  24.      at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78) 


  • 三.启动服务

  • cd /usr/java/zookeeper/bin/

  • ./zkServer.sh start

  • 验证:

  • ./zkServer.sh status        

  • [root@zookeeper2 bin]#  ./zkServer.sh status

  • ZooKeeper JMX enabled by default

  • Using config: /usr/java/zookeeper/bin/../conf/zoo.cfg

  • Mode: leader