| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| # |
| # RPM Spec file for Hadoop version @version@ |
| # |
| |
| %define name hadoop |
| %define version @version@ |
| %define release @package.release@ |
| |
| # Installation Locations |
| %define _prefix @package.prefix@ |
| %define _bin_dir %{_prefix}/bin |
| %define _conf_dir @package.conf.dir@ |
| %define _include_dir %{_prefix}/include |
| %define _lib_dir %{_prefix}/lib |
| %define _lib64_dir %{_prefix}/lib64 |
| %define _libexec_dir %{_prefix}/libexec |
| %define _log_dir @package.log.dir@ |
| %define _man_dir %{_prefix}/man |
| %define _pid_dir @package.pid.dir@ |
| %define _sbin_dir %{_prefix}/sbin |
| %define _share_dir %{_prefix}/share |
| %define _var_dir /var/lib/hadoop |
| |
| # Build time settings |
| %define _build_dir @package.build.dir@ |
| %define _final_name @final.name@ |
| %define debug_package %{nil} |
| |
| # Disable brp-java-repack-jars for aspect J |
| %define __os_install_post \ |
| /usr/lib/rpm/redhat/brp-compress \ |
| %{!?__debug_package:/usr/lib/rpm/redhat/brp-strip %{__strip}} \ |
| /usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} \ |
| /usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} \ |
| /usr/lib/rpm/brp-python-bytecompile %{nil} |
| |
| # RPM searches perl files for dependancies and this breaks for non packaged perl lib |
| # like thrift so disable this |
| %define _use_internal_dependency_generator 0 |
| |
| %ifarch i386 |
| %global hadoop_arch Linux-i386-32 |
| %endif |
| %ifarch amd64 x86_64 |
| %global hadoop_arch Linux-amd64-64 |
| %endif |
| %ifarch noarch |
| %global hadoop_arch "" |
| %endif |
| |
| Summary: The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing |
| License: Apache License, Version 2.0 |
| URL: http://hadoop.apache.org/core/ |
| Vendor: Apache Software Foundation |
| Group: Development/Libraries |
| Name: %{name} |
| Version: %{version} |
| Release: %{release} |
| Source0: %{_final_name}-bin.tar.gz |
| Source1: %{_final_name}-script.tar.gz |
| Prefix: %{_prefix} |
| Prefix: %{_conf_dir} |
| Prefix: %{_log_dir} |
| Prefix: %{_pid_dir} |
| Buildroot: %{_build_dir} |
| Requires: sh-utils, textutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, /sbin/service |
| AutoReqProv: no |
| Provides: hadoop |
| |
| %description |
| The Apache Hadoop project develops open-source software for reliable, scalable, |
| distributed computing. Hadoop includes these subprojects: |
| |
| Hadoop Common: The common utilities that support the other Hadoop subprojects. |
| HDFS: A distributed file system that provides high throughput access to application data. |
| MapReduce: A software framework for distributed processing of large data sets on compute clusters. |
| |
| %prep |
| %setup -n %{_final_name} -a 0 |
| %setup -n %{_final_name} -a 1 |
| |
| %build |
| if [ -d ${RPM_BUILD_DIR}%{_prefix} ]; then |
| rm -rf ${RPM_BUILD_DIR}%{_prefix} |
| fi |
| |
| if [ -d ${RPM_BUILD_DIR}%{_log_dir} ]; then |
| rm -rf ${RPM_BUILD_DIR}%{_log_dir} |
| fi |
| |
| if [ -d ${RPM_BUILD_DIR}%{_conf_dir} ]; then |
| rm -rf ${RPM_BUILD_DIR}%{_conf_dir} |
| fi |
| |
| if [ -d ${RPM_BUILD_DIR}%{_pid_dir} ]; then |
| rm -rf ${RPM_BUILD_DIR}%{_pid_dir} |
| fi |
| |
| mkdir -p ${RPM_BUILD_DIR}%{_prefix} |
| mkdir -p ${RPM_BUILD_DIR}%{_bin_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_include_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_lib_dir} |
| %ifarch amd64 x86_64 |
| mkdir -p ${RPM_BUILD_DIR}%{_lib64_dir} |
| %endif |
| mkdir -p ${RPM_BUILD_DIR}%{_libexec_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_log_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_conf_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_man_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_pid_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_sbin_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_share_dir} |
| mkdir -p ${RPM_BUILD_DIR}%{_var_dir} |
| mkdir -p ${RPM_BUILD_DIR}/etc/rc.d/init.d |
| |
| mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-namenode ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-namenode |
| mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-datanode ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-datanode |
| mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-jobtracker ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-jobtracker |
| mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-tasktracker ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-tasktracker |
| chmod 0755 ${RPM_BUILD_DIR}/etc/rc.d/init.d/* |
| chmod 0755 ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-* |
| |
| ######################### |
| #### INSTALL SECTION #### |
| ######################### |
| %install |
| mv ${RPM_BUILD_DIR}/%{_final_name}/etc/hadoop/* ${RPM_BUILD_DIR}%{_conf_dir} |
| mv ${RPM_BUILD_DIR}/%{_final_name}/* ${RPM_BUILD_DIR}%{_prefix} |
| |
| if [ "${RPM_BUILD_DIR}%{_conf_dir}" != "${RPM_BUILD_DIR}/%{_prefix}/conf" ]; then |
| rm -rf ${RPM_BUILD_DIR}/%{_prefix}/etc |
| fi |
| |
| %pre |
| getent group hadoop 2>/dev/null >/dev/null || /usr/sbin/groupadd -r hadoop |
| |
| /usr/sbin/useradd --comment "Hadoop MapReduce" --shell /bin/bash -M -r -g hadoop --home /tmp mapred 2> /dev/null || : |
| /usr/sbin/useradd --comment "Hadoop HDFS" --shell /bin/bash -M -r -g hadoop --home /tmp hdfs 2> /dev/null || : |
| |
| %post |
| bash ${RPM_INSTALL_PREFIX0}/sbin/update-hadoop-env.sh \ |
| --prefix=${RPM_INSTALL_PREFIX0} \ |
| --bin-dir=${RPM_INSTALL_PREFIX0}/bin \ |
| --sbin-dir=${RPM_INSTALL_PREFIX0}/sbin \ |
| --conf-dir=${RPM_INSTALL_PREFIX1} \ |
| --log-dir=${RPM_INSTALL_PREFIX2} \ |
| --pid-dir=${RPM_INSTALL_PREFIX3} |
| |
| %preun |
| bash ${RPM_INSTALL_PREFIX0}/sbin/update-hadoop-env.sh \ |
| --prefix=${RPM_INSTALL_PREFIX0} \ |
| --bin-dir=${RPM_INSTALL_PREFIX0}/bin \ |
| --sbin-dir=${RPM_INSTALL_PREFIX0}/sbin \ |
| --conf-dir=${RPM_INSTALL_PREFIX1} \ |
| --log-dir=${RPM_INSTALL_PREFIX2} \ |
| --pid-dir=${RPM_INSTALL_PREFIX3} \ |
| --uninstall |
| |
| %files |
| %defattr(-,root,root) |
| %attr(0755,root,hadoop) %{_log_dir} |
| %attr(0775,root,hadoop) %{_pid_dir} |
| %config(noreplace) %{_conf_dir}/capacity-scheduler.xml |
| %config(noreplace) %{_conf_dir}/configuration.xsl |
| %config(noreplace) %{_conf_dir}/core-site.xml |
| %config(noreplace) %{_conf_dir}/hadoop-env.sh |
| %config(noreplace) %{_conf_dir}/hadoop-metrics2.properties |
| %config(noreplace) %{_conf_dir}/hadoop-policy.xml |
| %config(noreplace) %{_conf_dir}/hdfs-site.xml |
| %config(noreplace) %{_conf_dir}/log4j.properties |
| %config(noreplace) %{_conf_dir}/mapred-queue-acls.xml |
| %config(noreplace) %{_conf_dir}/mapred-site.xml |
| %config(noreplace) %{_conf_dir}/masters |
| %config(noreplace) %{_conf_dir}/slaves |
| %config(noreplace) %{_conf_dir}/ssl-client.xml.example |
| %config(noreplace) %{_conf_dir}/ssl-server.xml.example |
| %config(noreplace) %{_conf_dir}/taskcontroller.cfg |
| %{_prefix} |
| %attr(0755,root,root) /etc/rc.d/init.d |