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/master Commit: 8147b196a9589ac5b243b8aa8d4b224adabdcf42 Parents: 8808ecb f838cd9 Author: Josh Elser <els...@apache.org> Authored: Wed Aug 27 20:55:19 2014 -0400 Committer: Josh Elser <els...@apache.org> 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