diff options
Diffstat (limited to 'devel/hadoop/files/datanode.in')
-rw-r--r-- | devel/hadoop/files/datanode.in | 72 |
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" |