You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ph...@apache.org on 2011/11/17 06:21:31 UTC
svn commit: r1203053 - in /zookeeper/branches/branch-3.3: CHANGES.txt
bin/zkCleanup.sh bin/zkCli.sh bin/zkEnv.sh bin/zkServer.sh
conf/zoo_sample.cfg
Author: phunt
Date: Thu Nov 17 05:21:31 2011
New Revision: 1203053
URL: http://svn.apache.org/viewvc?rev=1203053&view=rev
Log:
ZOOKEEPER-1301. backport patches related to the zk startup script from 3.4 to 3.3 release (Giridharan Kesavan via phunt)
Modified:
zookeeper/branches/branch-3.3/CHANGES.txt
zookeeper/branches/branch-3.3/bin/zkCleanup.sh
zookeeper/branches/branch-3.3/bin/zkCli.sh
zookeeper/branches/branch-3.3/bin/zkEnv.sh
zookeeper/branches/branch-3.3/bin/zkServer.sh
zookeeper/branches/branch-3.3/conf/zoo_sample.cfg
Modified: zookeeper/branches/branch-3.3/CHANGES.txt
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/CHANGES.txt?rev=1203053&r1=1203052&r2=1203053&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/CHANGES.txt (original)
+++ zookeeper/branches/branch-3.3/CHANGES.txt Thu Nov 17 05:21:31 2011
@@ -50,6 +50,20 @@ BUGFIXES:
ZOOKEEPER-1239. add logging/stats to identify fsync stalls. (phunt via camille)
+ ZOOKEEPER-1301. backport patches related to the zk startup script
+ from 3.4 to 3.3 release (Giridharan Kesavan via phunt)
+
+ ZOOKEEPER-1301 includes:
+ ZOOKEEPER-905. enhance zkServer.sh for easier zookeeper automation-izing (Nicholas Harteau via mahadev)
+ ZOOKEEPER-796. zkServer.sh should support an external PIDFILE variable (Alex Newman via phunt)
+ ZOOKEEPER-983. running zkServer.sh start remotely using ssh hangs (phunt)
+ ZOOKEEPER-976. ZooKeeper startup script doesn't use JAVA_HOME (phunt)
+ ZOOKEEPER-1013 zkServer.sh usage message should mention all startup options (eugene koontz via mahadev)
+ ZOOKEEPER-1012. support distinct JVMFLAGS for zookeeper server in zkServer.sh and zookeeper client in zkCli.sh (Eugene Koontz via breed)
+ ZOOKEEPER-1061. Zookeeper stop fails if start called twice. (Ted Dunning via mahadev)
+ ZOOKEEPER-1074. zkServer.sh is missing nohup/sleep, which are necessary for remote invocation. (phunt via mahadev)
+ ZOOKEEPER-1119. zkServer stop command incorrectly reading comment lines in zoo.cfg (phunt via mahadev)
+
Release 3.3.3 - 2011-02-23
Backward compatible changes:
Modified: zookeeper/branches/branch-3.3/bin/zkCleanup.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/bin/zkCleanup.sh?rev=1203053&r1=1203052&r2=1203053&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/bin/zkCleanup.sh (original)
+++ zookeeper/branches/branch-3.3/bin/zkCleanup.sh Thu Nov 17 05:21:31 2011
@@ -36,16 +36,16 @@ ZOOBINDIR=`dirname "$ZOOBIN"`
. "$ZOOBINDIR"/zkEnv.sh
-ZOODATADIR=$(grep '^dataDir=' "$ZOOCFG" | sed -e 's/.*=//')
-ZOODATALOGDIR=$(grep '^dataLogDir=' "$ZOOCFG" | sed -e 's/.*=//')
+ZOODATADIR=$(grep "^[[:space:]]*dataDir=" "$ZOOCFG" | sed -e 's/.*=//')
+ZOODATALOGDIR=$(grep "^[[:space:]]*dataLogDir=" "$ZOOCFG" | sed -e 's/.*=//')
if [ "x$ZOODATALOGDIR" = "x" ]
then
-java "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS \
org.apache.zookeeper.server.PurgeTxnLog "$ZOODATADIR" $*
else
-java "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS \
org.apache.zookeeper.server.PurgeTxnLog "$ZOODATALOGDIR" "$ZOODATADIR" $*
fi
Modified: zookeeper/branches/branch-3.3/bin/zkCli.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/bin/zkCli.sh?rev=1203053&r1=1203052&r2=1203053&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/bin/zkCli.sh (original)
+++ zookeeper/branches/branch-3.3/bin/zkCli.sh Thu Nov 17 05:21:31 2011
@@ -36,6 +36,6 @@ ZOOBINDIR=`dirname "$ZOOBIN"`
. "$ZOOBINDIR"/zkEnv.sh
-java "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
- -cp "$CLASSPATH" $JVMFLAGS \
+$JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+ -cp "$CLASSPATH" $CLIENT_JVMFLAGS $JVMFLAGS \
org.apache.zookeeper.ZooKeeperMain $@
Modified: zookeeper/branches/branch-3.3/bin/zkEnv.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/bin/zkEnv.sh?rev=1203053&r1=1203052&r2=1203053&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/bin/zkEnv.sh (original)
+++ zookeeper/branches/branch-3.3/bin/zkEnv.sh Thu Nov 17 05:21:31 2011
@@ -54,6 +54,12 @@ then
ZOO_LOG4J_PROP="INFO,CONSOLE"
fi
+if [ "$JAVA_HOME" != "" ]; then
+ JAVA="$JAVA_HOME/bin/java"
+else
+ JAVA=java
+fi
+
#add the zoocfg dir to classpath
CLASSPATH="$ZOOCFGDIR:$CLASSPATH"
Modified: zookeeper/branches/branch-3.3/bin/zkServer.sh
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/bin/zkServer.sh?rev=1203053&r1=1203052&r2=1203053&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/bin/zkServer.sh (original)
+++ zookeeper/branches/branch-3.3/bin/zkServer.sh Thu Nov 17 05:21:31 2011
@@ -32,13 +32,13 @@ fi
if [ "x$JMXDISABLE" = "x" ]
then
- echo "JMX enabled by default"
+ echo "JMX enabled by default" >&2
# for some reason these two options are necessary on jdk6 on Ubuntu
# accord to the docs they are not necessary, but otw jconsole cannot
# do a local attach
ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=$JMXLOCALONLY org.apache.zookeeper.server.quorum.QuorumPeerMain"
else
- echo "JMX disabled by user request"
+ echo "JMX disabled by user request" >&2
ZOOMAIN="org.apache.zookeeper.server.quorum.QuorumPeerMain"
fi
@@ -53,11 +53,23 @@ ZOOBINDIR=`dirname "$ZOOBIN"`
. "$ZOOBINDIR"/zkEnv.sh
+if [ "x$SERVER_JVMFLAGS" ]
+then
+ JVMFLAGS="$SERVER_JVMFLAGS $JVMFLAGS"
+fi
+
if [ "x$2" != "x" ]
then
ZOOCFG="$ZOOCFGDIR/$2"
fi
+# if we give a more complicated path to the config, don't screw around in $ZOOCFGDIR
+if [ "x`dirname $ZOOCFG`" != "x$ZOOCFGDIR" ]
+then
+ ZOOCFG="$2"
+ echo "Using config:$2" >&2
+fi
+
if $cygwin
then
ZOOCFG=`cygpath -wp "$ZOOCFG"`
@@ -67,34 +79,62 @@ else
KILL=kill
fi
-echo "Using config: $ZOOCFG"
+echo "Using config: $ZOOCFG" >&2
-ZOOPIDFILE=$(grep dataDir "$ZOOCFG" | sed -e 's/.*=//')/zookeeper_server.pid
+if [ -z $ZOOPIDFILE ]
+ then ZOOPIDFILE=$(grep dataDir "$ZOOCFG" | sed -e 's/.*=//')/zookeeper_server.pid
+fi
+_ZOO_DAEMON_OUT="$ZOO_LOG_DIR/zookeeper.out"
case $1 in
start)
- echo "Starting zookeeper ... "
- java "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
- -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" &
- /bin/echo -n $! > "$ZOOPIDFILE"
- echo STARTED
+ echo -n "Starting zookeeper ... "
+ if [ -f $ZOOPIDFILE ]; then
+ if kill -0 `cat $ZOOPIDFILE` > /dev/null 2>&1; then
+ echo $command already running as process `cat $ZOOPIDFILE`.
+ exit 0
+ fi
+ fi
+ nohup $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+ -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG" > "$_ZOO_DAEMON_OUT" 2>&1 < /dev/null &
+ if [ $? -eq 0 ]
+ then
+ if /bin/echo -n $! > "$ZOOPIDFILE"
+ then
+ sleep 1
+ echo STARTED
+ else
+ echo FAILED TO WRITE PID
+ exit 1
+ fi
+ else
+ echo SERVER DID NOT START
+ exit 1
+ fi
+ ;;
+start-foreground)
+ $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+ -cp "$CLASSPATH" $JVMFLAGS $ZOOMAIN "$ZOOCFG"
+ ;;
+print-cmd)
+ echo "$JAVA -Dzookeeper.log.dir=\"${ZOO_LOG_DIR}\" -Dzookeeper.root.logger=\"${ZOO_LOG4J_PROP}\" -cp \"$CLASSPATH\" $JVMFLAGS $ZOOMAIN \"$ZOOCFG\" > \"$_ZOO_DAEMON_OUT\" 2>&1 < /dev/null"
;;
stop)
- echo "Stopping zookeeper ... "
+ echo -n "Stopping zookeeper ... "
if [ ! -f "$ZOOPIDFILE" ]
then
- echo "no zookeeper to stop (could not find file $ZOOPIDFILE)"
+ echo "no zookeeper to stop (could not find file $ZOOPIDFILE)"
else
- $KILL -9 $(cat "$ZOOPIDFILE")
- rm "$ZOOPIDFILE"
- echo STOPPED
+ $KILL -9 $(cat "$ZOOPIDFILE")
+ rm "$ZOOPIDFILE"
+ echo STOPPED
fi
;;
upgrade)
shift
echo "upgrading the servers to 3.*"
- java "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
+ $JAVA "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}" \
-cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.server.upgrade.UpgradeMain ${@}
echo "Upgrading ... "
;;
@@ -105,15 +145,18 @@ restart)
"$0" start ${@}
;;
status)
- STAT=`echo stat | nc localhost $(grep clientPort "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
+ # -q is necessary on some versions of linux where nc returns too quickly, and no stat result is output
+ STAT=`echo stat | nc -q 1 localhost $(grep "^[[:space:]]*clientPort" "$ZOOCFG" | sed -e 's/.*=//') 2> /dev/null| grep Mode`
if [ "x$STAT" = "x" ]
then
echo "Error contacting service. It is probably not running."
+ exit 1
else
echo $STAT
+ exit 0
fi
;;
*)
- echo "Usage: $0 {start|stop|restart|status}" >&2
+ echo "Usage: $0 {start|start-foreground|stop|restart|status|upgrade|print-cmd}" >&2
esac
Modified: zookeeper/branches/branch-3.3/conf/zoo_sample.cfg
URL: http://svn.apache.org/viewvc/zookeeper/branches/branch-3.3/conf/zoo_sample.cfg?rev=1203053&r1=1203052&r2=1203053&view=diff
==============================================================================
--- zookeeper/branches/branch-3.3/conf/zoo_sample.cfg (original)
+++ zookeeper/branches/branch-3.3/conf/zoo_sample.cfg Thu Nov 17 05:21:31 2011
@@ -7,6 +7,6 @@ initLimit=10
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
-dataDir=/export/crawlspace/mahadev/zookeeper/server1/data
+dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181