This is an automated email from the ASF dual-hosted git repository.
iwasakims pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bigtop.git
The following commit(s) were added to refs/heads/master by this push:
new baf8d28c5 BIGTOP-4195: Provide systemd service unit files:
Hadoop(MapReduce) (#1313)
baf8d28c5 is described below
commit baf8d28c54c4678223af7d29a7b94fda270e49ae
Author: masatana <[email protected]>
AuthorDate: Thu Dec 12 22:48:25 2024 +0900
BIGTOP-4195: Provide systemd service unit files: Hadoop(MapReduce) (#1313)
---
...ault => hadoop-mapreduce-historyserver.service} | 25 +++++++++++++++++---
.../src/common/hadoop/install_hadoop.sh | 24 +++++++++++++++++--
.../src/common/hadoop/mapreduce.default | 2 +-
.../src/deb/hadoop/hadoop-mapreduce.install | 2 +-
.../src/deb/hadoop/hadoop-mapreduce.postinst | 6 ++---
bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec | 27 +++++++++++++++++++---
6 files changed, 73 insertions(+), 13 deletions(-)
diff --git a/bigtop-packages/src/common/hadoop/mapreduce.default
b/bigtop-packages/src/common/hadoop/hadoop-mapreduce-historyserver.service
similarity index 57%
copy from bigtop-packages/src/common/hadoop/mapreduce.default
copy to bigtop-packages/src/common/hadoop/hadoop-mapreduce-historyserver.service
index 9ab2b64ae..f0e3aa739 100644
--- a/bigtop-packages/src/common/hadoop/mapreduce.default
+++ b/bigtop-packages/src/common/hadoop/hadoop-mapreduce-historyserver.service
@@ -13,6 +13,25 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-export HADOOP_IDENT_STRING=mapred
-export HADOOP_PID_DIR=/var/run/hadoop-mapreduce
-export HADOOP_LOG_DIR=/var/log/hadoop-mapreduce
+[Unit]
+Documentation=https://hadoop.apache.org/
+Description=Hadoop MapReduce HistoryServer
+Before=multi-user.target
+Before=graphical.target
+After=remote-fs.target
+
+[Service]
+User=mapred
+Group=mapred
+Type=forking
+Restart=no
+TimeoutSec=5min
+IgnoreSIGPIPE=no
+KillMode=process
+GuessMainPID=no
+RemainAfterExit=no
+PIDFile=/run/hadoop-mapreduce/hadoop-mapred-historyserver.pid
+RuntimeDirectory=hadoop-mapreduce
+SuccessExitStatus=5 6
+ExecStart=/usr/bin/mapred --config /etc/hadoop/conf --daemon start
historyserver
+ExecStop=/usr/bin/mapred --config /etc/hadoop/conf --daemon stop historyserver
diff --git a/bigtop-packages/src/common/hadoop/install_hadoop.sh
b/bigtop-packages/src/common/hadoop/install_hadoop.sh
index e6c8a1e41..ed98f2615 100755
--- a/bigtop-packages/src/common/hadoop/install_hadoop.sh
+++ b/bigtop-packages/src/common/hadoop/install_hadoop.sh
@@ -181,7 +181,7 @@ export PATH="/sbin/:$PATH"
# Make bin wrappers
mkdir -p $PREFIX/$BIN_DIR
-for component in $PREFIX/$HADOOP_DIR/bin/hadoop $PREFIX/$HDFS_DIR/bin/hdfs
$PREFIX/$YARN_DIR/bin/yarn $PREFIX/$MAPREDUCE_DIR/bin/mapred ; do
+for component in $PREFIX/$HADOOP_DIR/bin/hadoop $PREFIX/$HDFS_DIR/bin/hdfs
$PREFIX/$YARN_DIR/bin/yarn ; do
wrapper=$PREFIX/$BIN_DIR/${component#*/bin/}
cat > $wrapper <<EOF
#!/bin/bash
@@ -196,6 +196,25 @@ EOF
chmod 755 $wrapper
done
+# mapreduce
+component=$PREFIX/$MAPREDUCE_DIR/bin/mapred
+wrapper=$PREFIX/$BIN_DIR/${component#*/bin/}
+cat > $wrapper <<EOF
+#!/bin/bash
+
+# Autodetect JAVA_HOME if not defined
+. /usr/lib/bigtop-utils/bigtop-detect-javahome
+
+export HADOOP_IDENT_STRING=\${HADOOP_IDENT_STRING:-mapred}
+export HADOOP_PID_DIR=\${HADOOP_PID_DIR:-/run/hadoop-mapreduce}
+export HADOOP_LOG_DIR=\${HADOOP_LOG_DIR:-/var/log/hadoop-mapreduce}
+
+export HADOOP_LIBEXEC_DIR=/$HADOOP_DIR/libexec
+
+exec ${component#${PREFIX}} "\$@"
+EOF
+chmod 755 $wrapper
+
#libexec
install -d -m 0755 $PREFIX/$HADOOP_DIR/libexec
cp -r ${BUILD_DIR}/libexec/* $PREFIX/$HADOOP_DIR/libexec/
@@ -415,7 +434,8 @@ install -d -m 0755 ${PREFIX}/${VAR_YARN}
install -d -m 0755 ${PREFIX}/${VAR_MAPREDUCE}
install -d -m 0755 $PREFIX/var/{log,run}/hadoop-hdfs
install -d -m 0755 $PREFIX/var/{log,run}/hadoop-yarn
-install -d -m 0755 $PREFIX/var/{log,run}/hadoop-mapreduce
+install -d -m 0755 $PREFIX/var/log/hadoop-mapreduce
+install -d -m 0755 $PREFIX/run/hadoop-mapreduce
# Remove all source and create version-less symlinks to offer integration
point with other projects
for DIR in $PREFIX/$HADOOP_DIR $PREFIX/$HDFS_DIR $PREFIX/$YARN_DIR
$PREFIX/$MAPREDUCE_DIR ; do
diff --git a/bigtop-packages/src/common/hadoop/mapreduce.default
b/bigtop-packages/src/common/hadoop/mapreduce.default
index 9ab2b64ae..fc881f76c 100644
--- a/bigtop-packages/src/common/hadoop/mapreduce.default
+++ b/bigtop-packages/src/common/hadoop/mapreduce.default
@@ -14,5 +14,5 @@
# limitations under the License.
export HADOOP_IDENT_STRING=mapred
-export HADOOP_PID_DIR=/var/run/hadoop-mapreduce
+export HADOOP_PID_DIR=/run/hadoop-mapreduce
export HADOOP_LOG_DIR=/var/log/hadoop-mapreduce
diff --git a/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.install
b/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.install
index ee971a919..fe53104c7 100644
--- a/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.install
+++ b/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.install
@@ -7,4 +7,4 @@
/usr/bin/mapred
/var/lib/hadoop-mapreduce
/var/log/hadoop-mapreduce
-/var/run/hadoop-mapreduce
+/run/hadoop-mapreduce
diff --git a/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.postinst
b/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.postinst
index 8013cbb72..5e766b2e0 100644
--- a/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.postinst
+++ b/bigtop-packages/src/deb/hadoop/hadoop-mapreduce.postinst
@@ -21,9 +21,9 @@ set -e
case "$1" in
configure)
- mkdir -p /var/log/hadoop-mapreduce /var/run/hadoop-mapreduce
/var/lib/hadoop-mapreduce/cache || :
- chgrp -R hadoop /var/log/hadoop-mapreduce /var/run/hadoop-mapreduce
- chmod g+w /var/run/hadoop-mapreduce /var/log/hadoop-mapreduce
+ mkdir -p /var/log/hadoop-mapreduce /run/hadoop-mapreduce
/var/lib/hadoop-mapreduce/cache || :
+ chgrp -R hadoop /var/log/hadoop-mapreduce /run/hadoop-mapreduce
+ chmod g+w /run/hadoop-mapreduce /var/log/hadoop-mapreduce
chown mapred:hadoop /var/lib/hadoop-mapreduce
/var/lib/hadoop-mapreduce/cache
chmod 0755 /var/lib/hadoop-mapreduce
chmod 1777 /var/lib/hadoop-mapreduce/cache
diff --git a/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
b/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
index 8d6ef8b18..dec853aec 100644
--- a/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
+++ b/bigtop-packages/src/rpm/hadoop/SPECS/hadoop.spec
@@ -177,9 +177,10 @@ Source28: mapred.1
Source29: hadoop-yarn-timelineserver.svc
Source30: hadoop-kms.svc
Source31: kms.default
+Source32: hadoop-mapreduce-historyserver.service
#BIGTOP_PATCH_FILES
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id} -u -n)
-BuildRequires: fuse-devel, fuse
+BuildRequires: fuse-devel, fuse, systemd, systemd-rpm-macros
Requires: coreutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig,
/sbin/service, bigtop-utils >= 0.7, %{zookeeper_pkg_name} >= 3.4.0
Requires: psmisc, %{netcat_package}
Requires: openssl-devel
@@ -593,6 +594,8 @@ do
chmod 644 $RPM_BUILD_ROOT/%{etc_default}/%{hadoop_name}-${service}
done
+%__install -D -m 0644 %{SOURCE32}
$RPM_BUILD_ROOT/%{_unitdir}/hadoop-mapreduce-historyserver.service
+
# Install security limits
%__install -d -m 0755 $RPM_BUILD_ROOT/etc/security/limits.d
%__install -m 0644 %{SOURCE8} $RPM_BUILD_ROOT/etc/security/limits.d/hdfs.conf
@@ -821,7 +824,26 @@ fi
%service_macro yarn-proxyserver
%service_macro yarn-timelineserver
%service_macro yarn-router
-%service_macro mapreduce-historyserver
+
+# Systemd unit file management RPMs
+%define systemd_macro() \
+%files %1 \
+%attr(0644,root,root) %{_unitdir}/%{hadoop_name}-%1.service \
+%config(noreplace) %{etc_default}/%{hadoop_name}-%1 \
+%post %1 \
+%systemd_post %{hadoop_name}-%1.service \
+\
+%preun %1 \
+%systemd_preun %{hadoop_name}-%1.service \
+if [ $1 = 0 ]; then \
+ %systemd_preun %{hadoop_name}-%1.service \
+fi \
+%postun %1 \
+if [ $1 -ge 1 ]; then \
+ %systemd_postun_with_restart %{hadoop_name}-%1.service \
+fi
+
+%systemd_macro mapreduce-historyserver
# Pseudo-distributed Hadoop installation
%post conf-pseudo
@@ -846,7 +868,6 @@ fi
%files libhdfs-devel
%{include_dir}/hdfs.h
-#%doc %{doc_dir}/libhdfs-%{hadoop_version}
%files libhdfspp
%defattr(-,root,root)