summaryrefslogtreecommitdiff
path: root/devel/hadoop/files/datanode.in
diff options
context:
space:
mode:
Diffstat (limited to 'devel/hadoop/files/datanode.in')
-rw-r--r--devel/hadoop/files/datanode.in72
1 files changed, 72 insertions, 0 deletions
diff --git a/devel/hadoop/files/datanode.in b/devel/hadoop/files/datanode.in
new file mode 100644
index 000000000000..402ecc228531
--- /dev/null
+++ b/devel/hadoop/files/datanode.in
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: datanode
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf to enable this service:
+#
+# datanode_enable (bool): Set to NO by default.
+# Set it to YES to enable datanode.
+# datanode_user (str): Set to %%HADOOP_USER%% by default.
+# Set to a valid user to change default
+# datanode user.
+# datanode_java_home (str): Unset by default.
+# Switch to another JVM.
+#
+# datanode_log_dir (str): Unset by default.
+# datanode_pid_dir (str): Unset by default.
+#
+
+. /etc/rc.subr
+
+name=datanode
+rcvar=datanode_enable
+
+load_rc_config "${name}"
+
+: ${datanode_enable:=NO}
+: ${datanode_user:=%%HADOOP_USER%%}
+: ${datanode_group:=%%HADOOP_GROUP%%}
+
+command="%%HADOOP_HOME%%/bin/hadoop-daemon.sh"
+command_args='--config ${HADOOP_CONF_DIR} start datanode'
+
+start_precmd=datanode_init
+stop_precmd=datanode_init
+stop_cmd=datanode_stop
+
+
+datanode_init()
+{
+ if [ -n "${datanode_java_home}" ]
+ then
+ export JAVA_HOME="${datanode_java_home}"
+ fi
+
+ for f in %%HADOOP_ETC%%/envvars.d/*.env
+ do
+ . ${f}
+ done
+ if [ -n "${datanode_log_dir}" ]
+ then
+ HADOOP_LOG_DIR=${datanode_log_dir}
+ fi
+
+ if [ -n "${datanode_pid_dir}" ]
+ then
+ HADOOP_LOG_DIR=${datanode_pid_dir}
+ fi
+
+ install -d -m 755 -o ${datanode_user} -g ${datanode_group} ${HADOOP_PID_DIR}
+ install -d -m 755 -o ${datanode_user} -g ${datanode_group} ${HADOOP_LOG_DIR}
+}
+
+datanode_stop ()
+{
+ su -m ${datanode_user} -c "${command} --config ${HADOOP_CONF_DIR} stop datanode"
+}
+
+run_rc_command "$1"