You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by sy...@apache.org on 2016/03/30 18:03:29 UTC
[27/50] [abbrv] hbase git commit: HBASE-15486 Avoid multiple
disable/enable balancer calls while running rolling-restart.sh --graceful
(Samir Ahmic)
HBASE-15486 Avoid multiple disable/enable balancer calls while running rolling-restart.sh --graceful (Samir Ahmic)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/52fd7050
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/52fd7050
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/52fd7050
Branch: refs/heads/hbase-12439
Commit: 52fd70500e0a00e273e2ec0c09d7c914b89432ce
Parents: db3ba65
Author: tedyu <yu...@gmail.com>
Authored: Thu Mar 24 06:55:45 2016 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Thu Mar 24 06:55:45 2016 -0700
----------------------------------------------------------------------
bin/graceful_stop.sh | 21 ++++++++++++++++-----
bin/rolling-restart.sh | 10 +++++++++-
2 files changed, 25 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/52fd7050/bin/graceful_stop.sh
----------------------------------------------------------------------
diff --git a/bin/graceful_stop.sh b/bin/graceful_stop.sh
index f1f04d6..510411e 100755
--- a/bin/graceful_stop.sh
+++ b/bin/graceful_stop.sh
@@ -22,7 +22,7 @@
# Turn off the balancer before running this script.
function usage {
echo "Usage: graceful_stop.sh [--config <conf-dir>] [-e] [--restart [--reload]] [--thrift] \
-[--rest] <hostname>"
+[--rest] [-nob |--nobalancer ] <hostname>"
echo " thrift If we should stop/start thrift before/after the hbase stop/start"
echo " rest If we should stop/start rest before/after the hbase stop/start"
echo " restart If we should restart after graceful stop"
@@ -34,6 +34,8 @@ moving regions"
exit with error. Default value is INT_MAX."
echo " hostname Hostname of server we are to stop"
echo " e|failfast Set -e so exit immediately if any command exits with non-zero status"
+ echo " nob| nobalancer Do not manage balancer states. This is only used as optimization in \
+rolling_restart.sh to avoid multiple calls to hbase shell"
exit 1
}
@@ -54,6 +56,7 @@ rest=
movetimeout=2147483647
maxthreads=1
failfast=
+nob=false
while [ $# -gt 0 ]
do
case "$1" in
@@ -65,6 +68,7 @@ do
--noack | -n) noack="--noack"; shift;;
--maxthreads) shift; maxthreads=$1; shift;;
--movetimeout) shift; movetimeout=$1; shift;;
+ --nobalancer | -nob) nob=true; shift;;
--) shift; break;;
-*) usage ;;
*) break;; # terminate while loop
@@ -97,9 +101,14 @@ if [ "$localhostname" == "$hostname" ]; then
local=true
fi
-log "Disabling load balancer"
-HBASE_BALANCER_STATE=`echo 'balance_switch false' | "$bin"/hbase --config ${HBASE_CONF_DIR} shell | tail -3 | head -1`
-log "Previous balancer state was $HBASE_BALANCER_STATE"
+if [ $nob == "true" ]; then
+ log "[ $0 ] skipping disabling balancer -nob argument is used"
+ HBASE_BALANCER_STATE=false
+else
+ log "Disabling load balancer"
+ HBASE_BALANCER_STATE=$(echo 'balance_switch false' | "$bin"/hbase --config "${HBASE_CONF_DIR}" shell | tail -3 | head -1)
+ log "Previous balancer state was $HBASE_BALANCER_STATE"
+fi
log "Unloading $hostname region(s)"
HBASE_NOEXEC=true "$bin"/hbase --config ${HBASE_CONF_DIR} org.apache.hadoop.hbase.util.RegionMover \
@@ -166,9 +175,11 @@ if [ "$restart" != "" ]; then
fi
# Restore balancer state
-if [ $HBASE_BALANCER_STATE != "false" ]; then
+if [ $HBASE_BALANCER_STATE != "false" ] && [ $nob != "true" ]; then
log "Restoring balancer state to $HBASE_BALANCER_STATE"
echo "balance_switch $HBASE_BALANCER_STATE" | "$bin"/hbase --config ${HBASE_CONF_DIR} shell &> /dev/null
+else
+ log "[ $0 ] skipping restoring balancer"
fi
# Cleanup tmp files.
http://git-wip-us.apache.org/repos/asf/hbase/blob/52fd7050/bin/rolling-restart.sh
----------------------------------------------------------------------
diff --git a/bin/rolling-restart.sh b/bin/rolling-restart.sh
index e6d25ed..530b76b 100755
--- a/bin/rolling-restart.sh
+++ b/bin/rolling-restart.sh
@@ -188,6 +188,10 @@ else
if [ "$zkrs" == "null" ]; then zkrs="rs"; fi
zkrs="$zparent/$zkrs"
online_regionservers=`$bin/hbase zkcli ls $zkrs 2>&1 | tail -1 | sed "s/\[//" | sed "s/\]//"`
+ echo "Disabling load balancer"
+ HBASE_BALANCER_STATE=$(echo 'balance_switch false' | "$bin"/hbase --config "${HBASE_CONF_DIR}" shell | tail -3 | head -1)
+ echo "Previous balancer state was $HBASE_BALANCER_STATE"
+
for rs in $online_regionservers
do
rs_parts=(${rs//,/ })
@@ -198,10 +202,14 @@ else
continue
else
echo "Gracefully restarting: $hostname"
- "$bin"/graceful_stop.sh --config ${HBASE_CONF_DIR} --restart --reload --maxthreads \
+ "$bin"/graceful_stop.sh --config ${HBASE_CONF_DIR} --restart --reload -nob --maxthreads \
${RR_MAXTHREADS} ${RR_NOACK} --movetimeout ${RR_MOVE_TIMEOUT} $hostname
sleep 1
fi
done
+ if [ "$HBASE_BALANCER_STATE" != "false" ]; then
+ echo "Restoring balancer state to $HBASE_BALANCER_STATE"
+ echo "balance_switch $HBASE_BALANCER_STATE" | "$bin"/hbase --config "${HBASE_CONF_DIR}" shell &> /dev/null
+ fi
fi
fi