hadoop-hdfs.spec 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  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-hdfs
  19. %define version @version@
  20. %define release @package.release@
  21. %define major_version %(echo %{version} | cut -d. -f -2)
  22. # Installation Locations
  23. %define _prefix @package.prefix@
  24. %define _bin_dir %{_prefix}/bin
  25. %define _conf_dir @package.conf.dir@
  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 _pid_dir @package.pid.dir@
  31. %define _sbin_dir %{_prefix}/sbin
  32. %define _share_dir %{_prefix}/share
  33. %define _var_dir @package.var.dir@
  34. # Build time settings
  35. %define _build_dir @package.build.dir@
  36. %define _final_name @final.name@
  37. %define debug_package %{nil}
  38. # Disable brp-java-repack-jars for aspect J
  39. %define __os_install_post \
  40. /usr/lib/rpm/redhat/brp-compress \
  41. %{!?__debug_package:/usr/lib/rpm/redhat/brp-strip %{__strip}} \
  42. /usr/lib/rpm/redhat/brp-strip-static-archive %{__strip} \
  43. /usr/lib/rpm/redhat/brp-strip-comment-note %{__strip} %{__objdump} \
  44. /usr/lib/rpm/brp-python-bytecompile %{nil}
  45. # RPM searches perl files for dependancies and this breaks for non packaged perl lib
  46. # like thrift so disable this
  47. %define _use_internal_dependency_generator 0
  48. %ifarch i386
  49. %global hadoop_arch Linux-i386-32
  50. %endif
  51. %ifarch amd64 x86_64
  52. %global hadoop_arch Linux-amd64-64
  53. %endif
  54. %ifarch noarch
  55. %global hadoop_arch ""
  56. %endif
  57. Summary: The Apache Hadoop project develops open-source software for reliable, scalable, distributed computing
  58. License: Apache License, Version 2.0
  59. URL: http://hadoop.apache.org/core/
  60. Vendor: Apache Software Foundation
  61. Group: Development/Libraries
  62. Name: %{name}
  63. Version: %{version}
  64. Release: %{release}
  65. Source0: %{_final_name}-bin.tar.gz
  66. Prefix: %{_prefix}
  67. Prefix: %{_conf_dir}
  68. Prefix: %{_log_dir}
  69. Prefix: %{_pid_dir}
  70. Buildroot: %{_build_dir}
  71. Requires: sh-utils, textutils, /usr/sbin/useradd, /usr/sbin/usermod, /sbin/chkconfig, /sbin/service, hadoop-common >= %{major_version}.0, hadoop-common <= %{major_version}.9999
  72. AutoReqProv: no
  73. Provides: hadoop-hdfs
  74. %description
  75. The Apache Hadoop project develops open-source software for reliable, scalable,
  76. distributed computing. Hadoop includes these subprojects:
  77. HDFS: A distributed file system that provides high throughput access to application data.
  78. %prep
  79. %setup -n %{_final_name}
  80. %build
  81. if [ -d ${RPM_BUILD_DIR}%{_prefix} ]; then
  82. rm -rf ${RPM_BUILD_DIR}%{_prefix}
  83. fi
  84. if [ -d ${RPM_BUILD_DIR}%{_log_dir} ]; then
  85. rm -rf ${RPM_BUILD_DIR}%{_log_dir}
  86. fi
  87. if [ -d ${RPM_BUILD_DIR}%{_conf_dir} ]; then
  88. rm -rf ${RPM_BUILD_DIR}%{_conf_dir}
  89. fi
  90. if [ -d ${RPM_BUILD_DIR}%{_pid_dir} ]; then
  91. rm -rf ${RPM_BUILD_DIR}%{_pid_dir}
  92. fi
  93. mkdir -p ${RPM_BUILD_DIR}%{_prefix}
  94. mkdir -p ${RPM_BUILD_DIR}%{_bin_dir}
  95. mkdir -p ${RPM_BUILD_DIR}%{_lib_dir}
  96. %ifarch amd64 x86_64
  97. mkdir -p ${RPM_BUILD_DIR}%{_lib64_dir}
  98. %endif
  99. mkdir -p ${RPM_BUILD_DIR}%{_libexec_dir}
  100. mkdir -p ${RPM_BUILD_DIR}%{_log_dir}
  101. mkdir -p ${RPM_BUILD_DIR}%{_conf_dir}
  102. mkdir -p ${RPM_BUILD_DIR}%{_pid_dir}
  103. mkdir -p ${RPM_BUILD_DIR}%{_sbin_dir}
  104. mkdir -p ${RPM_BUILD_DIR}%{_share_dir}
  105. mkdir -p ${RPM_BUILD_DIR}%{_var_dir}
  106. mkdir -p ${RPM_BUILD_DIR}/etc/init.d
  107. cp ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-namenode.redhat ${RPM_BUILD_DIR}/etc/init.d/hadoop-namenode
  108. cp ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-datanode.redhat ${RPM_BUILD_DIR}/etc/init.d/hadoop-datanode
  109. rm -f ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-namenode.*
  110. rm -f ${RPM_BUILD_DIR}/%{_final_name}/sbin/hadoop-namenode.*
  111. chmod 0755 ${RPM_BUILD_DIR}/etc/init.d/hadoop-*
  112. #########################
  113. #### INSTALL SECTION ####
  114. #########################
  115. %install
  116. mv ${RPM_BUILD_DIR}/%{_final_name}/bin/* ${RPM_BUILD_DIR}%{_bin_dir}
  117. rm ${RPM_BUILD_DIR}/%{_final_name}/etc/hadoop/configuration.xsl
  118. rm ${RPM_BUILD_DIR}/%{_final_name}/etc/hadoop/hadoop-metrics2.properties
  119. mv ${RPM_BUILD_DIR}/%{_final_name}/etc/hadoop/* ${RPM_BUILD_DIR}%{_conf_dir}
  120. mv ${RPM_BUILD_DIR}/%{_final_name}/lib/* ${RPM_BUILD_DIR}%{_lib_dir}
  121. mv ${RPM_BUILD_DIR}/%{_final_name}/libexec/* ${RPM_BUILD_DIR}%{_libexec_dir}
  122. mv ${RPM_BUILD_DIR}/%{_final_name}/sbin/* ${RPM_BUILD_DIR}%{_sbin_dir}
  123. mv ${RPM_BUILD_DIR}/%{_final_name}/share/* ${RPM_BUILD_DIR}%{_share_dir}
  124. rm -rf ${RPM_BUILD_DIR}/%{_final_name}/etc
  125. %pre
  126. getent group hadoop 2>/dev/null >/dev/null || /usr/sbin/groupadd -g 123 -r hadoop
  127. /usr/sbin/useradd --comment "Hadoop HDFS" -u 201 --shell /bin/bash -M -r --groups hadoop --home %{_var_dir}/hdfs hdfs 2> /dev/null || :
  128. %post
  129. bash ${RPM_INSTALL_PREFIX0}/sbin/update-hdfs-env.sh \
  130. --prefix=${RPM_INSTALL_PREFIX0} \
  131. --bin-dir=${RPM_INSTALL_PREFIX0}/bin \
  132. --sbin-dir=${RPM_INSTALL_PREFIX0}/sbin \
  133. --conf-dir=${RPM_INSTALL_PREFIX1} \
  134. --log-dir=${RPM_INSTALL_PREFIX2} \
  135. --pid-dir=${RPM_INSTALL_PREFIX3}
  136. %preun
  137. bash ${RPM_INSTALL_PREFIX0}/sbin/update-hdfs-env.sh \
  138. --prefix=${RPM_INSTALL_PREFIX0} \
  139. --bin-dir=${RPM_INSTALL_PREFIX0}/bin \
  140. --sbin-dir=${RPM_INSTALL_PREFIX0}/sbin \
  141. --conf-dir=${RPM_INSTALL_PREFIX1} \
  142. --log-dir=${RPM_INSTALL_PREFIX2} \
  143. --pid-dir=${RPM_INSTALL_PREFIX3} \
  144. --uninstall
  145. %files
  146. %defattr(-,root,root)
  147. %attr(0755,root,hadoop) %{_log_dir}
  148. %attr(0775,root,hadoop) %{_pid_dir}
  149. %config(noreplace) %{_conf_dir}/hdfs-site.xml
  150. %{_prefix}
  151. %attr(0775,root,root) /etc/init.d/hadoop-namenode
  152. %attr(0775,root,root) /etc/init.d/hadoop-datanode