Author: rvs
Date: Sun Oct 23 00:29:54 2011
New Revision: 1187832
URL: http://svn.apache.org/viewvc?rev=1187832&view=rev
Log:
BIGTOP-140. need to workaround HDFS-1943
Modified:
incubator/bigtop/trunk/bigtop-packages/src/deb/hadoop/service-init.d.tpl
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl.suse
Modified:
incubator/bigtop/trunk/bigtop-packages/src/deb/hadoop/service-init.d.tpl
URL:
http://svn.apache.org/viewvc/incubator/bigtop/trunk/bigtop-packages/src/deb/hadoop/service-init.d.tpl?rev=1187832&r1=1187831&r2=1187832&view=diff
==============================================================================
--- incubator/bigtop/trunk/bigtop-packages/src/deb/hadoop/service-init.d.tpl
(original)
+++ incubator/bigtop/trunk/bigtop-packages/src/deb/hadoop/service-init.d.tpl
Sun Oct 23 00:29:54 2011
@@ -143,11 +143,27 @@ hadoop_stop_pidfile() {
}
start() {
- $HADOOP_HOME/bin/hadoop-daemon.sh start @HADOOP_DAEMON@ $DAEMON_FLAGS
if [ "@HADOOP_DAEMON@" = "datanode" ]; then
+ # The following needs to be removed once HDFS-1943 gets finally put to
rest.
+ # The logic of this ugly hack is this: IFF we do NOT have jsvc installed
it is
+ # guaranteed that we can NOT be running in a secure mode and thus we
need to
+ # workaround HDFS-1943 (start as non-root). As soon as jsvc gets
installed
+ # we are assuming a secure installation and starting a data node as root.
+ # This leaves 2 corner cases:
+ # 1. HADOOP_DATANODE_USER being set to root
+ # 2. jsvc is installed but Hadoop is configures to run in an unsecure
mode
+ # Both will currently fail
+ if [ -f $HADOOP_HOME/libexec/jsvc.amd64 -o -f
$HADOOP_HOME/libexec/jsvc.i386 ] ; then
+ DN_USER=root
+ else
+ DN_USER=$HADOOP_DATANODE_USER
+ fi
+ su -s /bin/bash $DN_USER -c "$HADOOP_HOME/bin/hadoop-daemon.sh start
@HADOOP_DAEMON@ $DAEMON_FLAGS"
# Some processes are slow to start
sleep $SLEEP_TIME
+ else
+ $HADOOP_HOME/bin/hadoop-daemon.sh start @HADOOP_DAEMON@ $DAEMON_FLAGS
fi
}
Modified:
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl
URL:
http://svn.apache.org/viewvc/incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl?rev=1187832&r1=1187831&r2=1187832&view=diff
==============================================================================
---
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl
(original)
+++
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl
Sun Oct 23 00:29:54 2011
@@ -43,14 +43,31 @@ SLEEP_TIME=5
start() {
echo -n $"Starting $desc (hadoop-@HADOOP_DAEMON@): "
- daemon @HADOOP_COMMON_ROOT@/bin/hadoop-daemon.sh --config
"@HADOOP_CONF_DIR@" start @HADOOP_DAEMON@ $DAEMON_FLAGS
- RETVAL=$?
if [ "@HADOOP_DAEMON@" = "datanode" ]; then
+ # The following needs to be removed once HDFS-1943 gets finally put to
rest.
+ # The logic of this ugly hack is this: IFF we do NOT have jsvc installed
it is
+ # guaranteed that we can NOT be running in a secure mode and thus we need
to
+ # workaround HDFS-1943 (start as non-root). As soon as jsvc gets installed
+ # we are assuming a secure installation and starting a data node as root.
+ # This leaves 2 corner cases:
+ # 1. HADOOP_DATANODE_USER being set to root
+ # 2. jsvc is installed but Hadoop is configures to run in an unsecure
mode
+ # Both will currently fail
+ if [ -f $HADOOP_HOME/libexec/jsvc.amd64 -o -f
$HADOOP_HOME/libexec/jsvc.i386 ] ; then
+ DN_USER=root
+ else
+ DN_USER=$HADOOP_DATANODE_USER
+ fi
+ su -s /bin/bash $DN_USER -c "@HADOOP_COMMON_ROOT@/bin/hadoop-daemon.sh
--config '@HADOOP_CONF_DIR@' start @HADOOP_DAEMON@ $DAEMON_FLAGS"
+
# Some processes are slow to start
sleep $SLEEP_TIME
checkstatus
RETVAL=$?
+ else
+ daemon @HADOOP_COMMON_ROOT@/bin/hadoop-daemon.sh --config
"@HADOOP_CONF_DIR@" start @HADOOP_DAEMON@ $DAEMON_FLAGS
+ RETVAL=$?
fi
[ $RETVAL -eq $RETVAL_SUCCESS ] && touch $LOCKFILE
Modified:
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl.suse
URL:
http://svn.apache.org/viewvc/incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl.suse?rev=1187832&r1=1187831&r2=1187832&view=diff
==============================================================================
---
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl.suse
(original)
+++
incubator/bigtop/trunk/bigtop-packages/src/rpm/hadoop/SOURCES/hadoop-init.tmpl.suse
Sun Oct 23 00:29:54 2011
@@ -65,14 +65,31 @@ start() {
[ -x $exec ] || exit $ERROR_PROGRAM_NOT_INSTALLED
[ -f $config ] || exit $ERROR_PROGRAM_NOT_CONFIGURED
log_success_msg "Starting $desc (hadoop-@HADOOP_DAEMON@): "
- start_daemon $EXEC_PATH --config "$CONFIG_PATH" start @HADOOP_DAEMON@
$DAEMON_FLAGS
- RETVAL=$?
if [ "@HADOOP_DAEMON@" = "datanode" ]; then
+ # The following needs to be removed once HDFS-1943 gets finally put to
rest.
+ # The logic of this ugly hack is this: IFF we do NOT have jsvc installed
it is
+ # guaranteed that we can NOT be running in a secure mode and thus we need
to
+ # workaround HDFS-1943 (start as non-root). As soon as jsvc gets installed
+ # we are assuming a secure installation and starting a data node as root.
+ # This leaves 2 corner cases:
+ # 1. HADOOP_DATANODE_USER being set to root
+ # 2. jsvc is installed but Hadoop is configures to run in an unsecure
mode
+ # Both will currently fail
+ if [ -f $HADOOP_HOME/libexec/jsvc.amd64 -o -f
$HADOOP_HOME/libexec/jsvc.i386 ] ; then
+ DN_USER=root
+ else
+ DN_USER=$HADOOP_DATANODE_USER
+ fi
+ su -s /bin/bash $DN_USER -c "$EXEC_PATH --config '$CONFIG_PATH' start
@HADOOP_DAEMON@ $DAEMON_FLAGS"
+
# Some processes are slow to start
sleep $SLEEP_TIME
checkstatusofproc
RETVAL=$?
+ else
+ start_daemon $EXEC_PATH --config "$CONFIG_PATH" start @HADOOP_DAEMON@
$DAEMON_FLAGS
+ RETVAL=$?
fi
[ $RETVAL -eq $RETVAL_SUCCESS ] && touch $LOCKFILE