Merge branch '1.5.2-SNAPSHOT' into 1.6.1-SNAPSHOT
Conflicts:
server/tserver/src/main/java/org/apache/accumulo/tserver/TabletServer.java
Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/8147b196
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/8147b196
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/8147b196
Branch: refs/heads/1.6.1-SNAPSHOT
Commit: 8147b196a9589ac5b243b8aa8d4b224adabdcf42
Parents: 8808ecb f838cd9
Author: Josh Elser <[email protected]>
Authored: Wed Aug 27 20:55:19 2014 -0400
Committer: Josh Elser <[email protected]>
Committed: Wed Aug 27 20:55:19 2014 -0400
----------------------------------------------------------------------
assemble/bin/start-server.sh | 21 ++++++++++++++-------
assemble/bin/stop-server.sh | 2 +-
2 files changed, 15 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/accumulo/blob/8147b196/assemble/bin/start-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/start-server.sh
index 62ad91d,0000000..aa1375a
mode 100755,000000..100755
--- a/assemble/bin/start-server.sh
+++ b/assemble/bin/start-server.sh
@@@ -1,87 -1,0 +1,94 @@@
+#! /usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Start: Resolve Script Directory
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a
symlink
+ bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+ SOURCE="$(readlink "$SOURCE")"
+ [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative
symlink, we need to resolve it relative to the path where the symlink file was
located
+done
+bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+script=$( basename "$SOURCE" )
+# Stop: Resolve Script Directory
+
+. "$bin"/config.sh
+
+HOST="$1"
+host "$1" >/dev/null 2>/dev/null
+if [ $? -ne 0 ]; then
+ LOGHOST="$1"
+else
+ LOGHOST=$(host "$1" | head -1 | cut -d' ' -f1)
+fi
+ADDRESS="$1"
+SERVICE="$2"
+LONGNAME="$3"
+if [ -z "$LONGNAME" ]; then
+ LONGNAME="$2"
+fi
+SLAVES=$( wc -l < ${ACCUMULO_CONF_DIR}/slaves )
+
+IFCONFIG=/sbin/ifconfig
+if [ ! -x $IFCONFIG ]; then
+ IFCONFIG='/bin/netstat -ie'
+fi
+
- # ACCUMULO-1985 Allow monitor to bind on all interfaces
- if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
- ADDRESS="0.0.0.0"
- fi
-
+ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed
's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
+if [ $? != 0 ]
+then
+ ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
+fi
+
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ];
then
++# When the hostname provided is the alias/shortname, try to use the FQDN to
make
++# sure we send the right address to the Accumulo process.
++if [ "$HOST" = "`hostname -s`" ]; then
++ HOST="`hostname -f`"
++ ADDRESS="$HOST"
++fi
++
++# ACCUMULO-1985 Allow monitor to bind on all interfaces
++if [ ${SERVICE} == "monitor" -a ${ACCUMULO_MONITOR_BIND_ALL} == "true" ]; then
++ ADDRESS="0.0.0.0"
++fi
++
++if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip" ];
then
+ PID=$(ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep "Main
$SERVICE" | grep -v grep | awk {'print $2'} | head -1)
+else
+ PID=$($SSH $HOST ps -ef | egrep ${ACCUMULO_HOME}/.*/accumulo.*.jar | grep
"Main $SERVICE" | grep -v grep | awk {'print $2'} | head -1)
+fi
+
+if [ -z "$PID" ]; then
+ echo "Starting $LONGNAME on $HOST"
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ];
then
++ if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -f`" -o "$HOST" = "$ip"
]; then
+ ${bin}/accumulo ${SERVICE} --address ${ADDRESS}
>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out
2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err &
+ MAX_FILES_OPEN=$(ulimit -n)
+ else
+ $SSH $HOST "bash -c 'exec nohup ${bin}/accumulo ${SERVICE} --address
${ADDRESS} >${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.out
2>${ACCUMULO_LOG_DIR}/${SERVICE}_${LOGHOST}.err' &"
+ MAX_FILES_OPEN=$($SSH $HOST "/usr/bin/env bash -c 'ulimit -n'")
+ fi
+
+ if [ -n "$MAX_FILES_OPEN" ] && [ -n "$SLAVES" ] ; then
+ MAX_FILES_RECOMMENDED=${MAX_FILES_RECOMMENDED:-32768}
+ if (( SLAVES > 10 )) && (( MAX_FILES_OPEN < MAX_FILES_RECOMMENDED ))
+ then
+ echo "WARN : Max open files on $HOST is $MAX_FILES_OPEN, recommend
$MAX_FILES_RECOMMENDED" >&2
+ fi
+ fi
+else
+ echo "$HOST : $LONGNAME already running (${PID})"
+fi
http://git-wip-us.apache.org/repos/asf/accumulo/blob/8147b196/assemble/bin/stop-server.sh
----------------------------------------------------------------------
diff --cc assemble/bin/stop-server.sh
index 6fbe0af,0000000..d615172
mode 100755,000000..100755
--- a/assemble/bin/stop-server.sh
+++ b/assemble/bin/stop-server.sh
@@@ -1,56 -1,0 +1,56 @@@
+#! /usr/bin/env bash
+
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Start: Resolve Script Directory
+SOURCE="${BASH_SOURCE[0]}"
+while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a
symlink
+ bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+ SOURCE="$(readlink "$SOURCE")"
+ [[ $SOURCE != /* ]] && SOURCE="$bin/$SOURCE" # if $SOURCE was a relative
symlink, we need to resolve it relative to the path where the symlink file was
located
+done
+bin="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
+# Stop: Resolve Script Directory
+
+. "$bin"/config.sh
+
+HOST=$1
+
+IFCONFIG=/sbin/ifconfig
+if [ ! -x $IFCONFIG ]
+then
+ IFCONFIG='/bin/netstat -ie'
+fi
+ip=$($IFCONFIG 2>/dev/null| grep inet[^6] | awk '{print $2}' | sed
's/addr://' | grep -v 0.0.0.0 | grep -v 127.0.0.1 | head -n 1)
+if [ $? != 0 ]
+then
+ ip=$(python -c 'import socket as s; print s.gethostbyname(s.getfqdn())')
+fi
+
+# only stop if there's not one already running
- if [ "$HOST" = "localhost" -o "$HOST" = "`hostname`" -o "$HOST" = "$ip" ];
then
++if [ "$HOST" = "localhost" -o "$HOST" = "`hostname -s`" -o "$HOST" =
"`hostname -f`" -o "$HOST" = "$ip" ]; then
+ PID=$(ps -ef | grep "$ACCUMULO_HOME" | egrep ${2} | grep "Main ${3}" |
grep -v grep | grep -v ssh | grep -v stop-server.sh | awk {'print $2'} | head
-1)
+ if [ ! -z $PID ]; then
+ echo "Stopping ${3} on $1";
+ kill -s ${4} ${PID} 2>/dev/null
+ fi;
+else
+ PID=$(ssh -q -o 'ConnectTimeout 8' $1 "ps -ef | grep \"$ACCUMULO_HOME\" |
egrep '${2}' | grep 'Main ${3}' | grep -v grep | grep -v ssh | grep -v
stop-server.sh" | awk {'print $2'} | head -1)
+ if [ ! -z $PID ]; then
+ echo "Stopping ${3} on $1";
+ ssh -q -o 'ConnectTimeout 8' $1 "kill -s ${4} ${PID} 2>/dev/null"
+ fi;
+fi