I scoured the InterTubes for example hadoop/hbase startup scripts and found absolutely none! I ended up creating a minimal one that is so far only suited for the Pseudo-Distributed Operation mode as it just calls the start-all / stop-all scripts.
/etc/init.d/hadoop
Create the place it will put its startup logs
mkdir /var/log/hadoopCreate /etc/init.d/hadoop with the following:
#!/bin/sh
### BEGIN INIT INFO
# Provides: hadoop services
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Hadoop services
# Short-Description: Enable Hadoop services including hdfs
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HADOOP_BIN=/usr/local/hadoop/bin
NAME=hadoop
DESC=hadoop
USER=hadoop
ROTATE_SUFFIX=
test -x $HADOOP_BIN || exit 0
RETVAL=0
set -e
cd /
start_hadoop () {
set +e
su $USER -s /bin/sh -c $HADOOP_BIN/start-all.sh > /var/log/hadoop/startup_log
case "$?" in
0)
echo SUCCESS
RETVAL=0
;;
1)
echo TIMEOUT - check /var/log/hadoop/startup_log
RETVAL=1
;;
*)
echo FAILED - check /var/log/hadoop/startup_log
RETVAL=1
;;
esac
set -e
}
stop_hadoop () {
set +e
if [ $RETVAL = 0 ] ; then
su $USER -s /bin/sh -c $HADOOP_BIN/stop-all.sh > /var/log/hadoop/shutdown_log
RETVAL=$?
if [ $RETVAL != 0 ] ; then
echo FAILED - check /var/log/hadoop/shutdown_log
fi
else
echo No nodes running
RETVAL=0
fi
set -e
}
restart_hadoop() {
stop_hadoop
start_hadoop
}
case "$1" in
start)
echo -n "Starting $DESC: "
start_hadoop
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
stop_hadoop
echo "$NAME."
;;
force-reload|restart)
echo -n "Restarting $DESC: "
restart_hadoop
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
RETVAL=1
;;
esac
exit $RETVAL
/etc/init.d/hbase
Create the place it will put its startup logs
mkdir /var/log/hbaseCreate /etc/init.d/hbase with the following:
#!/bin/sh
### BEGIN INIT INFO
# Provides: hbase services
# Required-Start: $network
# Required-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Hbase services
# Short-Description: Enable Hbase services including hdfs
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HBASE_BIN=/usr/local/hbase/bin
NAME=hbase
DESC=hbase
USER=hadoop
ROTATE_SUFFIX=
test -x $HBASE_BIN || exit 0
RETVAL=0
set -e
cd /
start_hbase () {
set +e
su $USER -s /bin/sh -c $HBASE_BIN/start-hbase.sh > /var/log/hbase/startup_log
case "$?" in
0)
echo SUCCESS
RETVAL=0
;;
1)
echo TIMEOUT - check /var/log/hbase/startup_log
RETVAL=1
;;
*)
echo FAILED - check /var/log/hbase/startup_log
RETVAL=1
;;
esac
set -e
}
stop_hbase () {
set +e
if [ $RETVAL = 0 ] ; then
su $USER -s /bin/sh -c $HBASE_BIN/stop-hbase.sh > /var/log/hbase/shutdown_log
RETVAL=$?
if [ $RETVAL != 0 ] ; then
echo FAILED - check /var/log/hbase/shutdown_log
fi
else
echo No nodes running
RETVAL=0
fi
set -e
}
restart_hbase() {
stop_hbase
start_hbase
}
case "$1" in
start)
echo -n "Starting $DESC: "
start_hbase
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
stop_hbase
echo "$NAME."
;;
force-reload|restart)
echo -n "Restarting $DESC: "
restart_hbase
echo "$NAME."
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
RETVAL=1
;;
esac
exit $RETVAL
Set up the init system
This assumes you put the above init files in /etc/init.d
chmod +x /etc/init.d/{hbase,hadoop}
update-rc.d hadoop defaults
update-rc.d hbase defaults 25You can now start / stop hadoop by saying:
/etc/init.d/hadoop start/etc/init.d/hadoop stopAnd similarly with hbase
/etc/init.d/hbase start/etc/init.d/hbase stopMake sure you start hadoop before hbase and stop hbase before you stop hadoop