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