Hi all,
I am finding hard to configure exhibitor on 3 boxes.
I am trying to start exhibitor on the 3 machines with this command (shared file based config):
java -jar /opt/molsfw/exhibitor/exhibitor-1.5.1.jar --headingtext MOL --nodemodification true --filesystembackup true -c file --fsconfigdir /opt/molsfw/zooman --defaultconfig /opt/molsfw/zooman/exhibitor.properties
They all start fine, the /opt/molsfw/zooman/ is a shared folder between the 3 boxes, it's on a NAS.
When I try to get ZK running however, I run into the typical error that it throws when the myid file is missing.
I've seen a previous post on the subject, but it still not clear to me how the ensemble would start if the file is not there at all, and how the different zk instances can see each others if they are not configured in a cluster.
It seems like a bad race condition and I can't see which initial configuration that would make the ensemble work.
Thanks for your help.
Antonio
Other info:
-bash-4.1$ uname -a
SunOS mol-hsk-zookeeper7.local 5.11 joyent_20130226T234312Z i86pc i386 i86pc Solaris
-bash-4.1$ /opt/molsfw/java/jdk7u17/bin/java -version
java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) Server VM (build 23.7-b01, mixed mode)
Stack Trace on the ZK:
2014-01-07 15:50:57,686 [myid:] - INFO [main:QuorumPeerConfig@101] - Reading configuration from: /opt/molsfw/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
2014-01-07 15:50:57,692 [myid:] - WARN [main:QuorumPeerConfig@290] - Non-optimial configuration, consider an odd number of servers.
2014-01-07 15:50:57,693 [myid:] - INFO [main:QuorumPeerConfig@334] - Defaulting to majority quorums
2014-01-07 15:50:57,694 [myid:] - ERROR [main:QuorumPeerMain@85] - Invalid config, exiting abnormally
org.apache.zookeeper.server.quorum.QuorumPeerConfig$ConfigException: Error processing /opt/molsfw/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:121)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:101)
at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)
Caused by: java.lang.IllegalArgumentException: /opt/moldata/zookeeper/snapshot/myid file is missing
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parseProperties(QuorumPeerConfig.java:344)
at org.apache.zookeeper.server.quorum.QuorumPeerConfig.parse(QuorumPeerConfig.java:117)
... 2 more
Config of (any) of the ZK:
-bash-4.1$ cat /opt/molsfw/zookeeper/zookeeper-3.4.5/bin/../conf/zoo.cfg
#Auto-generated by Exhibitor - Tue Jan 07 15:50:57 UTC 2014
#Tue Jan 07 15:50:57 UTC 2014
server.3=10.250.76.189\:2888\:3888
server.2=10.250.76.188\:2888\:3888
server.1=10.250.76.187\:2888\:3888
initLimit=10
syncLimit=5
clientPort=2181
tickTime=2000
dataDir=/opt/moldata/zookeeper/snapshot
dataLogDir=/opt/moldata/zookeeper/log
server.4=10.250.76.190\:2888\:3888
Config on the shared folder:
-bash-4.1$ cat /opt/molsfw/zooman/exhibitor.properties
#Auto-generated by Exhibitor
#Tue Jan 07 15:20:00 UTC 2014
com.netflix.exhibitor-rolling-hostnames=
com.netflix.exhibitor-rolling.zookeeper-data-directory=/opt/moldata/zookeeper/snapshot
com.netflix.exhibitor-rolling.servers-spec=1\:10.250.76.187,2\:10.250.76.188,3\:10.250.76.189,4\:10.250.76.190
com.netflix.exhibitor.java-environment=/opt/molsfw/zookeeper/zookeeper-3.4.5/conf/java.env
com.netflix.exhibitor.zookeeper-data-directory=/opt/moldata/zookeeper/snapshot
com.netflix.exhibitor-rolling-hostnames-index=0
com.netflix.exhibitor-rolling.java-environment=/opt/molsfw/zookeeper/zookeeper-3.4.5/conf/java.env
com.netflix.exhibitor-rolling.observer-threshold=999
com.netflix.exhibitor.servers-spec=1\:10.250.76.187,2\:10.250.76.188,3\:10.250.76.189,4\:10.250.76.190
com.netflix.exhibitor.cleanup-period-ms=43200000
com.netflix.exhibitor.auto-manage-instances-fixed-ensemble-size=4
com.netflix.exhibitor.zookeeper-install-directory=/opt/molsfw/zookeeper/*
com.netflix.exhibitor.check-ms=30000
com.netflix.exhibitor.zookeeper-log-directory=/opt/moldata/zookeeper/log
com.netflix.exhibitor-rolling.auto-manage-instances=0
com.netflix.exhibitor-rolling.cleanup-period-ms=43200000
com.netflix.exhibitor-rolling.auto-manage-instances-settling-period-ms=180000
com.netflix.exhibitor-rolling.check-ms=30000
com.netflix.exhibitor.log-index-directory=/opt/moldata/zookeeper/log-index
com.netflix.exhibitor-rolling.log-index-directory=/opt/moldata/zookeeper/log-index
com.netflix.exhibitor.backup-period-ms=60000
com.netflix.exhibitor-rolling.connect-port=2888
com.netflix.exhibitor-rolling.election-port=3888
com.netflix.exhibitor-rolling.backup-extra=directory\=%2Fopt%2Fmoldata%2Fzookeeper%2Fbackup-extra
com.netflix.exhibitor.client-port=2181
com.netflix.exhibitor-rolling.zoo-cfg-extra=syncLimit\=5&tickTime\=2000&initLimit\=10
com.netflix.exhibitor-rolling.zookeeper-install-directory=/opt/molsfw/zookeeper/*
com.netflix.exhibitor.cleanup-max-files=3
com.netflix.exhibitor-rolling.auto-manage-instances-fixed-ensemble-size=4
com.netflix.exhibitor-rolling.backup-period-ms=60000
com.netflix.exhibitor-rolling.client-port=2181
com.netflix.exhibitor.backup-max-store-ms=86400000
com.netflix.exhibitor-rolling.cleanup-max-files=3
com.netflix.exhibitor-rolling.backup-max-store-ms=86400000
com.netflix.exhibitor.connect-port=2888
com.netflix.exhibitor.backup-extra=directory\=%2Fopt%2Fmoldata%2Fzookeeper%2Fbackup-extra
com.netflix.exhibitor.observer-threshold=999
com.netflix.exhibitor.log4j-properties=
com.netflix.exhibitor.auto-manage-instances-apply-all-at-once=1
com.netflix.exhibitor.election-port=3888
com.netflix.exhibitor-rolling.auto-manage-instances-apply-all-at-once=1
com.netflix.exhibitor.zoo-cfg-extra=syncLimit\=5&tickTime\=2000&initLimit\=10
com.netflix.exhibitor-rolling.zookeeper-log-directory=/opt/moldata/zookeeper/log
com.netflix.exhibitor.auto-manage-instances-settling-period-ms=180000
com.netflix.exhibitor-rolling.log4j-properties=
com.netflix.exhibitor.auto-manage-instances=0