hadoop.spec 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. # Licensed to the Apache Software Foundation (ASF) under one or more
  2. # contributor license agreements. See the NOTICE file distributed with
  3. # this work for additional information regarding copyright ownership.
  4. # The ASF licenses this file to You under the Apache License, Version 2.0
  5. # (the "License"); you may not use this file except in compliance with
  6. # the License. You may obtain a copy of the License at
  7. #
  8. # http://www.apache.org/licenses/LICENSE-2.0
  9. #
  10. # Unless required by applicable law or agreed to in writing, software
  11. # distributed under the License is distributed on an "AS IS" BASIS,
  12. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. # See the License for the specific language governing permissions and
  14. # limitations under the License.
  15. #
  16. # RPM Spec file for Hadoop version @version@
  17. #
  18. %define name hadoop
  19. %define version @version@
  20. %define release @package.release@
  21. # Installation Locations
  22. %define _prefix @package.prefix@
  23. %define _bin_dir %{_prefix}/bin
  24. %define _conf_dir @package.conf.dir@
  25. %define _include_dir %{_prefix}/include
  26. %define _lib_dir %{_prefix}/lib
  27. %define _lib64_dir %{_prefix}/lib64
  28. %define _libexec_dir %{_prefix}/libexec
  29. %define _log_dir @package.log.dir@
  30. %define _man_dir %{_prefix}/man
  31. %define _pid_dir @package.pid.dir@
  32. %define _sbin_dir %{_prefix}/sbin
  33. %define _share_dir %{_prefix}/share
  34. %define _var_dir /var/lib/hadoop
  35. # Build time settings
  36. %define _build_dir @package.build.dir@
  37. %define _final_name @final.name@
  38. %define debug_package %{nil}
  39. # Disable brp-java-repack-jars for aspect J
  40. %define __os_install_post \
  41. /usr/lib/rpm/redhat/brp-compress \
  42. %{!?__debug_package:/usr/lib/rpm/redhat/brp-strip %{__strip}} \
  43. /usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} \
  44. /usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} \
  45. /usr/lib/rpm/brp-python-bytecompile %{nil}
  46. # RPM searches perl files for dependancies and this breaks for non packaged perl lib
  47. # like thrift so disable this
  48. %define _use_internal_dependency_generator 0
  49. %ifarch i386
  50. %global hadoop_arch Linux-i386-32
  51. %endif
  52. %ifarch amd64 x86_64
  53. %global hadoop_arch Linux-amd64-64
  54. %endif
  55. %ifarch noarch
  56. %global hadoop_arch ""
  57. %endif
  58. Summary: The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing
  59. License: Apache License, Version 2.0
  60. URL: http://hadoop.apache.org/core/
  61. Vendor: Apache Software Foundation
  62. Group: Development/Libraries
  63. Name: %{name}
  64. Version: %{version}
  65. Release: %{release}
  66. Source0: %{_final_name}-bin.tar.gz
  67. Source1: %{_final_name}-script.tar.gz
  68. Prefix: %{_prefix}
  69. Prefix: %{_conf_dir}
  70. Prefix: %{_log_dir}
  71. Prefix: %{_pid_dir}
  72. Buildroot: %{_build_dir}
  73. Requires: sh-utils, textutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, /sbin/service, jdk >= 1.6
  74. AutoReqProv: no
  75. Provides: hadoop
  76. %description
  77. The Apache Hadoop project develops open-source software for reliable, scalable,
  78. distributed computing. Hadoop includes these subprojects:
  79. Hadoop Common: The common utilities that support the other Hadoop subprojects.
  80. HDFS: A distributed file system that provides high throughput access to application data.
  81. MapReduce: A software framework for distributed processing of large data sets on compute clusters.
  82. %prep
  83. %setup -n %{_final_name} -a 0
  84. %setup -n %{_final_name} -a 1
  85. %build
  86. if [ -d ${RPM_BUILD_DIR}%{_prefix} ]; then
  87. rm -rf ${RPM_BUILD_DIR}%{_prefix}
  88. fi
  89. if [ -d ${RPM_BUILD_DIR}%{_log_dir} ]; then
  90. rm -rf ${RPM_BUILD_DIR}%{_log_dir}
  91. fi
  92. if [ -d ${RPM_BUILD_DIR}%{_conf_dir} ]; then
  93. rm -rf ${RPM_BUILD_DIR}%{_conf_dir}
  94. fi
  95. if [ -d ${RPM_BUILD_DIR}%{_pid_dir} ]; then
  96. rm -rf ${RPM_BUILD_DIR}%{_pid_dir}
  97. fi
  98. mkdir -p ${RPM_BUILD_DIR}%{_prefix}
  99. mkdir -p ${RPM_BUILD_DIR}%{_bin_dir}
  100. mkdir -p ${RPM_BUILD_DIR}%{_include_dir}
  101. mkdir -p ${RPM_BUILD_DIR}%{_lib_dir}
  102. %ifarch amd64 x86_64
  103. mkdir -p ${RPM_BUILD_DIR}%{_lib64_dir}
  104. %endif
  105. mkdir -p ${RPM_BUILD_DIR}%{_libexec_dir}
  106. mkdir -p ${RPM_BUILD_DIR}%{_log_dir}
  107. mkdir -p ${RPM_BUILD_DIR}%{_conf_dir}
  108. mkdir -p ${RPM_BUILD_DIR}%{_man_dir}
  109. mkdir -p ${RPM_BUILD_DIR}%{_pid_dir}
  110. mkdir -p ${RPM_BUILD_DIR}%{_sbin_dir}
  111. mkdir -p ${RPM_BUILD_DIR}%{_share_dir}
  112. mkdir -p ${RPM_BUILD_DIR}%{_var_dir}
  113. mkdir -p ${RPM_BUILD_DIR}/etc/rc.d/init.d
  114. mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-namenode ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-namenode
  115. mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-datanode ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-datanode
  116. mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-jobtracker ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-jobtracker
  117. mv ${RPM_BUILD_DIR}/%{_final_name}/hadoop-tasktracker ${RPM_BUILD_DIR}/etc/rc.d/init.d/hadoop-tasktracker
  118. chmod 0755 ${RPM_BUILD_DIR}/etc/rc.d/init.d/*
  119. chmod 0755 ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-*
  120. #########################
  121. #### INSTALL SECTION ####
  122. #########################
  123. %install
  124. mv ${RPM_BUILD_DIR}/%{_final_name}/etc/hadoop/* ${RPM_BUILD_DIR}%{_conf_dir}
  125. mv ${RPM_BUILD_DIR}/%{_final_name}/* ${RPM_BUILD_DIR}%{_prefix}
  126. if [ "${RPM_BUILD_DIR}%{_conf_dir}" != "${RPM_BUILD_DIR}/%{_prefix}/conf" ]; then
  127. rm -rf ${RPM_BUILD_DIR}/%{_prefix}/etc
  128. fi
  129. %pre
  130. getent group hadoop 2>/dev/null >/dev/null || /usr/sbin/groupadd -r hadoop
  131. /usr/sbin/useradd --comment "Hadoop MapReduce" --shell /bin/bash -M -r --groups hadoop --home /tmp mapred 2> /dev/null || :
  132. /usr/sbin/useradd --comment "Hadoop HDFS" --shell /bin/bash -M -r --groups hadoop --home /tmp hdfs 2> /dev/null || :
  133. %post
  134. bash ${RPM_INSTALL_PREFIX0}/sbin/update-hadoop-env.sh \
  135. --prefix=${RPM_INSTALL_PREFIX0} \
  136. --bin-dir=${RPM_INSTALL_PREFIX0}/bin \
  137. --sbin-dir=${RPM_INSTALL_PREFIX0}/sbin \
  138. --conf-dir=${RPM_INSTALL_PREFIX1} \
  139. --log-dir=${RPM_INSTALL_PREFIX2} \
  140. --pid-dir=${RPM_INSTALL_PREFIX3}
  141. %preun
  142. bash ${RPM_INSTALL_PREFIX0}/sbin/update-hadoop-env.sh \
  143. --prefix=${RPM_INSTALL_PREFIX0} \
  144. --bin-dir=${RPM_INSTALL_PREFIX0}/bin \
  145. --sbin-dir=${RPM_INSTALL_PREFIX0}/sbin \
  146. --conf-dir=${RPM_INSTALL_PREFIX1} \
  147. --log-dir=${RPM_INSTALL_PREFIX2} \
  148. --pid-dir=${RPM_INSTALL_PREFIX3} \
  149. --uninstall
  150. %files
  151. %defattr(-,root,root)
  152. %attr(0755,root,hadoop) %{_log_dir}
  153. %attr(0775,root,hadoop) %{_pid_dir}
  154. %config(noreplace) %{_conf_dir}/capacity-scheduler.xml
  155. %config(noreplace) %{_conf_dir}/configuration.xsl
  156. %config(noreplace) %{_conf_dir}/core-site.xml
  157. %config(noreplace) %{_conf_dir}/hadoop-env.sh
  158. %config(noreplace) %{_conf_dir}/hadoop-metrics2.properties
  159. %config(noreplace) %{_conf_dir}/hadoop-policy.xml
  160. %config(noreplace) %{_conf_dir}/hdfs-site.xml
  161. %config(noreplace) %{_conf_dir}/log4j.properties
  162. %config(noreplace) %{_conf_dir}/mapred-queue-acls.xml
  163. %config(noreplace) %{_conf_dir}/mapred-site.xml
  164. %config(noreplace) %{_conf_dir}/masters
  165. %config(noreplace) %{_conf_dir}/slaves
  166. %config(noreplace) %{_conf_dir}/ssl-client.xml.example
  167. %config(noreplace) %{_conf_dir}/ssl-server.xml.example
  168. %config(noreplace) %{_conf_dir}/taskcontroller.cfg
  169. %{_prefix}
  170. %attr(0755,root,root) /etc/rc.d/init.d