123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- # 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, jdk >= 1.6
- 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 --groups hadoop --home /tmp mapred 2> /dev/null || :
- /usr/sbin/useradd --comment "Hadoop HDFS" --shell /bin/bash -M -r --groups 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
|