--- /dev/null
+#!/bin/sh
+#
+# gridctl: Control grid
+#
+# $Id: gridctl 527 2013-05-16 10:49:40Z whitestar $
+#
+# Copyright 2013 the original author or authors.
+#
+# Licensed 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.
+#
+
+
+PATH=.:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:`dirname $0`
+
+# Settings
+DOMAIN=${DOMAIN:-''}
+#DOMAIN='grid.example.com'
+
+# Hadoop (HDFS, MapReduce)
+HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-''}
+if [ x"$HADOOP_CONF_DIR" != x'' ]; then
+ HADOOP_CONF_OPT="--config ${HADOOP_CONF_DIR}"
+else
+ HADOOP_CONF_OPT=''
+fi
+HDFS_USER=${HDFS_USER:-'hdfs'}
+MAPRED_USER=${MAPRED_USER:-'mapred'}
+DN_INIT_USER=${DN_INIT_USER:-'root'}
+NAMENODE=${NAMENODE:-'localhost'}
+SECONDARYNAMENODE=${SECONDARYNAMENODE:-'localhost'}
+DATANODES=${DATANODES:-'localhost'}
+BALANCER=${BALANCER:-'localhost'}
+JOBTRACKER=${JOBTRACKER:-'localhost'}
+TASKTRACKERS=${TASKTRACKERS:-"$DATANODES"}
+HISTORYSERVER=${HISTORYSERVER:-'localhost'}
+#NAMENODE='nn00'
+#SECONDARYNAMENODE='nn02'
+#DATANODES='dn00000 dn00001'
+#JOBTRACKER='jt00'
+# YARN
+YARN_USER=${YARN_USER:-'yarn'}
+RESOURCEMANAGER=${RESOURCEMANAGER:-'localhost'}
+NODEMANAGERS=${NODEMANAGERS:-"$DATANODES"}
+#RESOURCEMANAGER='rm00'
+
+# HBase
+HBASE_HOME=${HBASE_HOME:-'/grid/usr/hbase'}
+HBASE_USER=${HBASE_USER:-'hbase'}
+HMASTERS=${HMASTERS:-'localhost'}
+HREGIONSERVERS=${HREGIONSERVERS:-'localhost'}
+#HMASTERS='hm00 hm01'
+#HREGIONSERVERS='dn00000 dn00001'
+
+# ZooKeeper
+ZOOKEEPER_PREFIX=${ZOOKEEPER_PREFIX:-'/grid/usr/zookeeper'}
+ZOOCFGDIR=${ZOOCFGDIR:-"${ZOOKEEPER_PREFIX}/conf"}
+ZOOKEEPER_USER=${ZOOKEEPER_USER:-'zookeeper'}
+ZOOKEEPER_PEERS=${ZOOKEEPER_PEERS:-'localhost'}
+#ZOOKEEPER_PEERS='zk00 zk01 zk02'
+
+
+help() {
+ echo 'Usage: gridctl SERVICE,... {start|stop|status}'
+ echo ''
+ echo 'Services: '
+ echo ' hdfs |balancer |mapred|historyserver (Hadoop 1.x or before)'
+ echo ' hdfs2|balancer2|yarn |historyserver2 (Hadoop 2.x or later)'
+ echo ' hbase|zookeeper'
+ echo 'Commands: '
+ echo ' start|stop: control the grid daemons'
+ echo ' status: print the Java process(es)'
+}
+
+
+# $1: target node list (e.g. 'zk00 zk01 zk02')
+get_targets() {
+ TARGETS=''
+ HOSTS=$1
+ for HOST in $HOSTS; do
+ if [ x"$DOMAIN" != x'' ]; then
+ FQDN=${HOST}.${DOMAIN}
+ else
+ FQDN=${HOST}
+ fi
+ if [ x"$TARGETS" = x'' ]; then
+ TARGETS=$FQDN
+ else
+ TARGETS="${TARGETS},${FQDN}"
+ fi
+ done
+
+ echo $TARGETS
+}
+
+
+get_passwd() {
+ echo -n '[sudo] password via SSH: '
+ stty -echo
+ read PASSWD
+ stty echo
+ echo ''
+}
+
+
+ctl_hdfs() {
+ DAEMON_COMMAND=${DAEMON_COMMAND:-"${HADOOP_PREFIX}/bin/hadoop-daemon.sh"}
+ SERVICE_PREFIX=${SERVICE_PREFIX:-'hadoop-'}
+ _NAMENODE=`get_targets "$NAMENODE"`
+ _SECONDARYNAMENODE=`get_targets "$SECONDARYNAMENODE"`
+ _DATANODES=`get_targets "$DATANODES"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "HADOOP_CONF_DIR: ${HADOOP_CONF_DIR}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "NameNode: ${_NAMENODE}"
+ echo "SecondaryNameNode: ${_SECONDARYNAMENODE}"
+ echo "DataNodes: ${_DATANODES}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_NAMENODE -M -- sudo -S -p \'\' -u $HDFS_USER $DAEMON_COMMAND $HADOOP_CONF_OPT start namenode
+ dsh_ipass -P $PASSWD -m $_SECONDARYNAMENODE -M -- sudo -S -p \'\' -u $HDFS_USER $DAEMON_COMMAND $HADOOP_CONF_OPT start secondarynamenode
+ dsh_ipass -P $PASSWD -m $_DATANODES -M -- sudo -S -p \'\' -u $DN_INIT_USER $DAEMON_COMMAND $HADOOP_CONF_OPT start datanode
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_NAMENODE -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}namenode start
+ dsh_ipass -P $PASSWD -m $_SECONDARYNAMENODE -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}secondarynamenode start
+ dsh_ipass -P $PASSWD -m $_DATANODES -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}datanode start
+ fi
+ ;;
+ stop)
+ echo "Stopping ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_DATANODES -M -- sudo -S -p \'\' -u $DN_INIT_USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop datanode
+ dsh_ipass -P $PASSWD -m $_SECONDARYNAMENODE -M -- sudo -S -p \'\' -u $HDFS_USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop secondarynamenode
+ dsh_ipass -P $PASSWD -m $_NAMENODE -M -- sudo -S -p \'\' -u $HDFS_USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop namenode
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_DATANODES -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}datanode stop
+ dsh_ipass -P $PASSWD -m $_SECONDARYNAMENODE -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}secondarynamenode stop
+ dsh_ipass -P $PASSWD -m $_NAMENODE -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}namenode stop
+ fi
+ ;;
+ status)
+ echo "${DESC} Status"
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_NAMENODE -M -- sudo -S -p \'\' -u $HDFS_USER jps -mv
+ dsh_ipass -P $PASSWD -m $_SECONDARYNAMENODE -M -- sudo -S -p \'\' -u $HDFS_USER jps -mv
+ dsh_ipass -P $PASSWD -m $_DATANODES -M -- sudo -S -p \'\' -u $HDFS_USER jps -mv
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_DATANODES -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}datanode status
+ dsh_ipass -P $PASSWD -m $_SECONDARYNAMENODE -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}secondarynamenode status
+ dsh_ipass -P $PASSWD -m $_NAMENODE -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}namenode status
+ fi
+ ;;
+ esac
+ DAEMON_COMMAND=''
+ SERVICE_PREFIX=''
+}
+
+
+ctl_hdfs2() {
+ DAEMON_COMMAND=${DAEMON_COMMAND:-"${HADOOP_PREFIX}/sbin/hadoop-daemon.sh"}
+ SERVICE_PREFIX=${SERVICE_PREFIX:-'hadoop-hdfs-'}
+ ctl_hdfs
+}
+
+
+ctl_balancer() {
+ DAEMON_COMMAND=${DAEMON_COMMAND:-"${HADOOP_PREFIX}/bin/hadoop-daemon.sh"}
+ USER=$HDFS_USER
+ _BALANCER=`get_targets "$BALANCER"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "HADOOP_CONF_DIR: ${HADOOP_CONF_DIR}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "Balancer: ${_BALANCER}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} ..."
+ dsh_ipass -P $PASSWD -m $_BALANCER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT start balancer
+ ;;
+ stop)
+ echo "Stopping ${DESC} ..."
+ dsh_ipass -P $PASSWD -m $_BALANCER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop balancer
+ ;;
+ status)
+ echo "${DESC} Status"
+ dsh_ipass -P $PASSWD -m $_BALANCER -M -- sudo -S -p \'\' -u $USER jps -mv
+ ;;
+ esac
+ DAEMON_COMMAND=''
+ SERVICE_PREFIX=''
+}
+
+
+ctl_balancer2() {
+ DAEMON_COMMAND=${DAEMON_COMMAND:-"${HADOOP_PREFIX}/sbin/hadoop-daemon.sh"}
+ ctl_balancer
+}
+
+
+ctl_mapred() {
+ DAEMON_COMMAND="${HADOOP_PREFIX}/bin/hadoop-daemon.sh"
+ SERVICE_PREFIX=${SERVICE_PREFIX:-'hadoop-'}
+ USER=$MAPRED_USER
+ _JOBTRACKER=`get_targets "$JOBTRACKER"`
+ _TASKTRACKERS=`get_targets "$TASKTRACKERS"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "HADOOP_CONF_DIR: ${HADOOP_CONF_DIR}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "JobTracker: ${_JOBTRACKER}"
+ echo "TaskTrackers: ${_TASKTRACKERS}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_JOBTRACKER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT start jobtracker
+ dsh_ipass -P $PASSWD -m $_TASKTRACKERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT start tasktracker
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_JOBTRACKER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}jobtracker start
+ dsh_ipass -P $PASSWD -m $_TASKTRACKERS -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}tasktracker start
+ fi
+ ;;
+ stop)
+ echo "Stopping ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_TASKTRACKERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop tasktracker
+ dsh_ipass -P $PASSWD -m $_JOBTRACKER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop jobtracker
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_TASKTRACKERS -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}tasktracker stop
+ dsh_ipass -P $PASSWD -m $_JOBTRACKER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}jobtracker stop
+ fi
+ ;;
+ status)
+ echo "${DESC} Status"
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_JOBTRACKER -M -- sudo -S -p \'\' -u $USER jps -mv
+ dsh_ipass -P $PASSWD -m $_TASKTRACKERS -M -- sudo -S -p \'\' -u $USER jps -mv
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_JOBTRACKER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}jobtracker status
+ dsh_ipass -P $PASSWD -m $_TASKTRACKERS -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}tasktracker status
+ fi
+ ;;
+ esac
+}
+
+
+ctl_historyserver() {
+ DAEMON_COMMAND=${DAEMON_COMMAND:-"${HADOOP_PREFIX}/bin/hadoop-daemon.sh"}
+ SERVICE_PREFIX=${SERVICE_PREFIX:-'hadoop-'}
+ USER=$MAPRED_USER
+ _HISTORYSERVER=`get_targets "$HISTORYSERVER"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "HADOOP_CONF_DIR: ${HADOOP_CONF_DIR}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "HistoryServer: ${_HISTORYSERVER}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_HISTORYSERVER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT start historyserver
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_HISTORYSERVER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}historyserver start
+ fi
+ ;;
+ stop)
+ echo "Stopping ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_HISTORYSERVER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop historyserver
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_HISTORYSERVER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}historyserver stop
+ fi
+ ;;
+ status)
+ echo "${DESC} Status"
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_HISTORYSERVER -M -- sudo -S -p \'\' -u $USER jps -mv
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_HISTORYSERVER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}historyserver status
+ fi
+ ;;
+ esac
+ DAEMON_COMMAND=''
+ SERVICE_PREFIX=''
+}
+
+
+ctl_historyserver2() {
+ DAEMON_COMMAND="${HADOOP_PREFIX}/sbin/mr-jobhistory-daemon.sh"
+ SERVICE_PREFIX=${SERVICE_PREFIX:-'hadoop-mapreduce-'}
+ ctl_historyserver
+}
+
+
+ctl_yarn() {
+ DAEMON_COMMAND="${HADOOP_PREFIX}/sbin/yarn-daemon.sh"
+ SERVICE_PREFIX=${SERVICE_PREFIX:-'hadoop-yarn-'}
+ USER=$YARN_USER
+ _RESOURCEMANAGER=`get_targets "$RESOURCEMANAGER"`
+ _NODEMANAGERS=`get_targets "$NODEMANAGERS"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "HADOOP_CONF_DIR: ${HADOOP_CONF_DIR}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "ResourceManager: ${_RESOURCEMANAGER}"
+ echo "NodeManagers: ${_NODEMANAGERS}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_RESOURCEMANAGER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT start resourcemanager
+ dsh_ipass -P $PASSWD -m $_NODEMANAGERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT start nodemanager
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_RESOURCEMANAGER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}resourcemanager start
+ dsh_ipass -P $PASSWD -m $_NODEMANAGERS -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}nodemanager start
+ fi
+ ;;
+ stop)
+ echo "Stopping ${DESC} ..."
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_NODEMANAGERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop nodemanager
+ dsh_ipass -P $PASSWD -m $_RESOURCEMANAGER -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND $HADOOP_CONF_OPT stop resourcemanager
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_NODEMANAGERS -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}nodemanager stop
+ dsh_ipass -P $PASSWD -m $_RESOURCEMANAGER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}resourcemanager stop
+ fi
+ ;;
+ status)
+ echo "${DESC} Status"
+ if [ $ARTIFACT_TYPE = 'tarball' ]; then
+ dsh_ipass -P $PASSWD -m $_RESOURCEMANAGER -M -- sudo -S -p \'\' -u $USER jps -mv
+ dsh_ipass -P $PASSWD -m $_NODEMANAGERS -M -- sudo -S -p \'\' -u $USER jps -mv
+ elif [ $ARTIFACT_TYPE = 'package' ]; then
+ dsh_ipass -P $PASSWD -m $_NODEMANAGERS -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}nodemanager status
+ dsh_ipass -P $PASSWD -m $_RESOURCEMANAGER -M -- sudo -S -p \'\' service ${SERVICE_PREFIX}resourcemanager status
+ fi
+ ;;
+ esac
+}
+
+
+ctl_hbase() {
+ DAEMON_COMMAND="${HBASE_HOME}/bin/hbase-daemon.sh"
+ USER=$HBASE_USER
+ _HMASTERS=`get_targets "$HMASTERS"`
+ _HREGIONSERVERS=`get_targets "$HREGIONSERVERS"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "HBASE_HOME: ${HBASE_HOME}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "HMasters: ${_HMASTERS}"
+ echo "HRegionServers: ${_HREGIONSERVERS}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} ..."
+ dsh_ipass -P $PASSWD -m $_HMASTERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND start master
+ dsh_ipass -P $PASSWD -m $_HREGIONSERVERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND start regionserver
+ ;;
+ stop)
+ echo "Stopping ${DESC} ..."
+ dsh_ipass -P $PASSWD -m $_HREGIONSERVERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND stop regionserver
+ dsh_ipass -P $PASSWD -m $_HMASTERS -M -- sudo -S -p \'\' -u $USER $DAEMON_COMMAND stop master
+ ;;
+ status)
+ echo "${DESC} Status"
+ dsh_ipass -P $PASSWD -m $_HMASTERS -M -- sudo -S -p \'\' -u $USER jps -mv
+ dsh_ipass -P $PASSWD -m $_HREGIONSERVERS -M -- sudo -S -p \'\' -u $USER jps -mv
+ ;;
+ esac
+}
+
+
+ctl_zookeeper() {
+ DAEMON_COMMAND="${ZOOKEEPER_PREFIX}/bin/zkServer.sh"
+ USER=$ZOOKEEPER_USER
+ PEERS=`get_targets "$ZOOKEEPER_PEERS"`
+ echo "[Grid ${COMMAND}: ${DESC}]"
+ echo "ZOOKEEPER_PREFIX: ${ZOOKEEPER_PREFIX}"
+ echo "ZOOCFGDIR: ${ZOOCFGDIR}"
+ echo "Daemon command: ${DAEMON_COMMAND}"
+ echo "ZooKeeper Peers: ${PEERS}"
+ get_passwd
+ case "$COMMAND" in
+ start)
+ echo "Starting ${DESC} by ${USER} user ..."
+ DAEMON_COMMAND="export ZOOCFGDIR=${ZOOCFGDIR};${DAEMON_COMMAND} start"
+ dsh_ipass -P $PASSWD -m $PEERS -M -- sudo -S -p \'\' -u $USER sh -c "'"$DAEMON_COMMAND"'"
+ ;;
+ stop)
+ echo "Stopping ${DESC} by ${USER} user ..."
+ DAEMON_COMMAND="export ZOOCFGDIR=${ZOOCFGDIR};${DAEMON_COMMAND} stop"
+ dsh_ipass -P $PASSWD -m $PEERS -M -- sudo -S -p \'\' -u $USER sh -c "'"$DAEMON_COMMAND"'"
+ ;;
+ status)
+ echo "${DESC} Status"
+ dsh_ipass -P $PASSWD -m $PEERS -M -- sudo -S -p \'\' -u $USER jps -mv
+ ;;
+ esac
+}
+
+
+# Main
+ARGS="$@"
+SERVICES=`echo $1 | tr ',' ' '`
+COMMAND=$2
+
+# Validation
+if [ $# != 2 ]; then
+ help
+ exit 1
+fi
+
+if [ x"$HADOOP_HOME" != x'' ]; then
+ HADOOP_PREFIX=$HADOOP_HOME
+else
+ if [ x"$HADOOP_PREFIX" != x'' ]; then
+ HADOOP_HOME=$HADOOP_PREFIX
+ else
+ if [ -d '/usr/lib/hadoop' ]; then
+ HADOOP_HOME='/usr/lib/hadoop'
+ HADOOP_PREFIX=$HADOOP_HOME
+ elif [ -d '/grid/usr/hadoop' ]; then
+ HADOOP_HOME='/grid/usr/hadoop'
+ HADOOP_PREFIX=$HADOOP_HOME
+ else
+ echo 'HADOOP_HOME or HADOOP_PREFIX could not be specified!'
+ exit 1
+ fi
+ fi
+fi
+
+if [ x"$ARTIFACT_TYPE" = x'' ]; then
+ if [ $HADOOP_PREFIX = '/usr/lib/hadoop' ]; then
+ ARTIFACT_TYPE='package'
+ else
+ ARTIFACT_TYPE='tarball'
+ fi
+fi
+
+echo "HADOOP_HOME: ${HADOOP_HOME}"
+echo "HADOOP_PREFIX: ${HADOOP_PREFIX}"
+echo "ARTIFACT_TYPE: ${ARTIFACT_TYPE}"
+
+for SERVICE in $SERVICES; do
+ case "$SERVICE" in
+ hdfs)
+ DESC='HDFS Cluster'
+ ctl_hdfs
+ ;;
+ hdfs2)
+ DESC='HDFS-2 Cluster'
+ ctl_hdfs2
+ ;;
+ balancer)
+ DESC='HDFS Balancer'
+ ctl_balancer
+ ;;
+ balancer2)
+ DESC='HDFS-2 Balancer'
+ ctl_balancer2
+ ;;
+ yarn)
+ DESC='YARN Cluster'
+ ctl_yarn
+ ;;
+ mapred)
+ DESC='MapReduce Cluster'
+ ctl_mapred
+ ;;
+ historyserver)
+ DESC='MapReduce JobHistoryServer'
+ ctl_historyserver
+ ;;
+ historyserver2)
+ DESC='MapReduce JobHistoryServer2'
+ ctl_historyserver2
+ ;;
+ hbase)
+ DESC='HBase Cluster'
+ ctl_hbase
+ ;;
+ zookeeper)
+ DESC='ZooKeeper Ensemble'
+ ctl_zookeeper
+ ;;
+ *)
+ help
+ exit 1
+ ;;
+ esac
+done
+
+exit 0