svn commit: r379091 - head/devel/hadoop2/files
Dmitry Sivachenko
demon at FreeBSD.org
Mon Feb 16 13:16:36 UTC 2015
Author: demon
Date: Mon Feb 16 13:16:34 2015
New Revision: 379091
URL: https://svnweb.freebsd.org/changeset/ports/379091
QAT: https://qat.redports.org/buildarchive/r379091/
Log:
Protect datanode and nodemanager daemons from being killed on OOM condition.
They run on worker nodes where users run their code and can easily consume
all RAM.
Modified:
head/devel/hadoop2/files/datanode.in
head/devel/hadoop2/files/nodemanager.in
Modified: head/devel/hadoop2/files/datanode.in
==============================================================================
--- head/devel/hadoop2/files/datanode.in Mon Feb 16 12:05:14 2015 (r379090)
+++ head/devel/hadoop2/files/datanode.in Mon Feb 16 13:16:34 2015 (r379091)
@@ -14,6 +14,7 @@
export PATH=${PATH}:%%LOCALBASE%%/bin
name=datanode
rcvar=datanode_enable
+pidfile=%%HADOOP_RUNDIR%%/hadoop-%%HDFS_USER%%-${name}.pid
load_rc_config "${name}"
@@ -23,8 +24,16 @@ load_rc_config "${name}"
command="%%PREFIX%%/sbin/hadoop-daemon.sh"
command_args='--config %%ETCDIR%% start datanode'
+start_postcmd="start_postcmd"
stop_cmd=datanode_stop
+start_postcmd () {
+ rc_pid=$(check_pidfile ${pidfile} %%JAVA_HOME%%/bin/java)
+ if [ -n "$rc_pid" ]; then
+ protect -p $rc_pid
+ fi
+}
+
datanode_stop () {
su -m ${datanode_user} -c "${command} --config %%ETCDIR%% stop datanode"
}
Modified: head/devel/hadoop2/files/nodemanager.in
==============================================================================
--- head/devel/hadoop2/files/nodemanager.in Mon Feb 16 12:05:14 2015 (r379090)
+++ head/devel/hadoop2/files/nodemanager.in Mon Feb 16 13:16:34 2015 (r379091)
@@ -14,6 +14,7 @@
export PATH=${PATH}:%%LOCALBASE%%/bin
name=nodemanager
rcvar=nodemanager_enable
+pidfile=%%HADOOP_RUNDIR%%/yarn-yarn-${name}.pid
load_rc_config "${name}"
@@ -23,8 +24,16 @@ load_rc_config "${name}"
command="%%PREFIX%%/sbin/yarn-daemon.sh"
command_args='--config %%ETCDIR%% start nodemanager'
+start_postcmd="start_postcmd"
stop_cmd=nodemanager_stop
+start_postcmd () {
+ rc_pid=$(check_pidfile ${pidfile} %%JAVA_HOME%%/bin/java)
+ if [ -n "$rc_pid" ]; then
+ protect -p $rc_pid
+ fi
+}
+
nodemanager_stop () {
su -m ${nodemanager_user} -c "${command} --config %%ETCDIR%% stop nodemanager"
}
More information about the svn-ports-all
mailing list