下载Hadoop源码

1、登录官网

2、确定你要安装的软件的版本

一个选取原则: 不新不旧的稳定版本

几个标准:

  1)一般来说,刚刚发布的大版本都是有很多问题

  2)应该选择某个大版本中的最后一个小版本

阅读编译文档

1、准备一个hadoop源码包,我选择的hadoop的版本是:hadoop-2.7.5-src.tar.gz,在hadoop-2.7.5-src.tar.gz的源码包根目录下有一个文档叫做BUINDING.txt,这其中说明了编译hadoop所需要的一些编译环境相关的东西。不同的hadoop版本的要求都不一样。对应的版本参照BUINDING.txt。

  1. Requirements:
  2.  
  3. * Unix System
  4. * JDK 1.7+
  5. * Maven 3.0 or later
  6. * Findbugs 1.3.9 (if running findbugs)
  7. * ProtocolBuffer 2.5.0
  8. * CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac
  9. * Zlib devel (if compiling native code)
  10. * openssl devel ( if compiling native hadoop-pipes and to get the best HDFS encryption performance )
  11. * Linux FUSE (Filesystem in Userspace) version 2.6 or above ( if compiling fuse_dfs )
  12. * Internet connection for first build (to fetch all Maven and Hadoop dependencies)

软件安装

对应以上需求,我们准备好所要求版本的这些软件。

JDK的安装

选择版本:jdk1.8.0_73

安装依赖包

根据编译指导文件BUILDING.txt,安装相关依赖程序包

  1. [root@master soft]# yum -y install gcc-c++ build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-devua svn openssl-devel ncurses-devel
  1. [root@master soft]# yum -y install gcc-c++ build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-devua svn openssl-devel ncurses-devel
  2. 已加载插件:fastestmirror, refresh-packagekit, security
  3. 设置安装进程
  4. Loading mirror speeds from cached hostfile
  5. * base: mirrors..com
  6. * extras: mirrors..com
  7. * updates: mirrors.cqu.edu.cn
  8. base | 3.7 kB :
  9. extras | 3.4 kB :
  10. updates | 3.4 kB :
  11. No package build-essential available.
  12. No package zlib1g-dev available.
  13. No package pkg-config available.
  14. No package libssl-devua available.
  15. 解决依赖关系
  16. --> 执行事务检查
  17. ---> Package autoconf.noarch :2.63-5.1.el6 will be 安装
  18. ---> Package automake.noarch :1.11.-.el6 will be 安装
  19. ---> Package cmake.x86_64 :2.8.12.2-.el6 will be 安装
  20. ---> Package gcc-c++.x86_64 :4.4.-.el6 will be 安装
  21. --> 处理依赖关系 libstdc++-devel = 4.4.-.el6,它被软件包 gcc-c++-4.4.-.el6.x86_64 需要
  22. --> 处理依赖关系 libstdc++ = 4.4.-.el6,它被软件包 gcc-c++-4.4.-.el6.x86_64 需要
  23. --> 处理依赖关系 gcc = 4.4.-.el6,它被软件包 gcc-c++-4.4.-.el6.x86_64 需要
  24. --> 处理依赖关系 libmpfr.so.()(64bit),它被软件包 gcc-c++-4.4.-.el6.x86_64 需要
  25. ---> Package libtool.x86_64 :2.2.-15.5.el6 will be 安装
  26. ---> Package ncurses-devel.x86_64 :5.7-4.20090207.el6 will be 安装
  27. ---> Package openssl-devel.x86_64 :1.0.1e-.el6 will be 安装
  28. --> 处理依赖关系 openssl = 1.0.1e-.el6,它被软件包 openssl-devel-1.0.1e-.el6.x86_64 需要
  29. --> 处理依赖关系 zlib-devel,它被软件包 openssl-devel-1.0.1e-.el6.x86_64 需要
  30. --> 处理依赖关系 krb5-devel,它被软件包 openssl-devel-1.0.1e-.el6.x86_64 需要
  31. ---> Package subversion.x86_64 :1.6.-.el6_7 will be 安装
  32. --> 处理依赖关系 perl(URI) >= 1.17,它被软件包 subversion-1.6.-.el6_7.x86_64 需要
  33. --> 执行事务检查
  34. ---> Package gcc.x86_64 :4.4.-.el6 will be 安装
  35. --> 处理依赖关系 libgomp = 4.4.-.el6,它被软件包 gcc-4.4.-.el6.x86_64 需要
  36. --> 处理依赖关系 cpp = 4.4.-.el6,它被软件包 gcc-4.4.-.el6.x86_64 需要
  37. --> 处理依赖关系 libgcc >= 4.4.-.el6,它被软件包 gcc-4.4.-.el6.x86_64 需要
  38. --> 处理依赖关系 cloog-ppl >= 0.15,它被软件包 gcc-4.4.-.el6.x86_64 需要
  39. ---> Package krb5-devel.x86_64 :1.10.-.el6 will be 安装
  40. --> 处理依赖关系 libkadm5(x86-) = 1.10.-.el6,它被软件包 krb5-devel-1.10.-.el6.x86_64 需要
  41. --> 处理依赖关系 krb5-libs = 1.10.-.el6,它被软件包 krb5-devel-1.10.-.el6.x86_64 需要
  42. --> 处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.10.-.el6.x86_64 需要
  43. --> 处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.10.-.el6.x86_64 需要
  44. --> 处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.10.-.el6.x86_64 需要
  45. ---> Package libstdc++.x86_64 :4.4.-.el6 will be 升级
  46. ---> Package libstdc++.x86_64 :4.4.-.el6 will be an update
  47. ---> Package libstdc++-devel.x86_64 :4.4.-.el6 will be 安装
  48. ---> Package mpfr.x86_64 :2.4.-.el6 will be 安装
  49. ---> Package openssl.x86_64 :1.0.1e-.el6 will be 升级
  50. ---> Package openssl.x86_64 :1.0.1e-.el6 will be an update
  51. ---> Package perl-URI.noarch :1.40-.el6 will be 安装
  52. ---> Package zlib-devel.x86_64 :1.2.-.el6 will be 安装
  53. --> 执行事务检查
  54. ---> Package cloog-ppl.x86_64 :0.15.-1.2.el6 will be 安装
  55. --> 处理依赖关系 libppl_c.so.()(64bit),它被软件包 cloog-ppl-0.15.-1.2.el6.x86_64 需要
  56. --> 处理依赖关系 libppl.so.()(64bit),它被软件包 cloog-ppl-0.15.-1.2.el6.x86_64 需要
  57. ---> Package cpp.x86_64 :4.4.-.el6 will be 安装
  58. ---> Package keyutils-libs-devel.x86_64 :1.4-.el6 will be 安装
  59. ---> Package krb5-libs.x86_64 :1.10.-.el6 will be 升级
  60. --> 处理依赖关系 krb5-libs = 1.10.-.el6,它被软件包 krb5-workstation-1.10.-.el6.x86_64 需要
  61. ---> Package krb5-libs.x86_64 :1.10.-.el6 will be an update
  62. ---> Package libcom_err-devel.x86_64 :1.41.-.el6 will be 安装
  63. --> 处理依赖关系 libcom_err = 1.41.-.el6,它被软件包 libcom_err-devel-1.41.-.el6.x86_64 需要
  64. ---> Package libgcc.x86_64 :4.4.-.el6 will be 升级
  65. ---> Package libgcc.x86_64 :4.4.-.el6 will be an update
  66. ---> Package libgomp.x86_64 :4.4.-.el6 will be 升级
  67. ---> Package libgomp.x86_64 :4.4.-.el6 will be an update
  68. ---> Package libkadm5.x86_64 :1.10.-.el6 will be 安装
  69. ---> Package libselinux-devel.x86_64 :2.0.-.el6 will be 安装
  70. --> 处理依赖关系 libselinux = 2.0.-.el6,它被软件包 libselinux-devel-2.0.-.el6.x86_64 需要
  71. --> 处理依赖关系 libsepol-devel >= 2.0.-,它被软件包 libselinux-devel-2.0.-.el6.x86_64 需要
  72. --> 处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.0.-.el6.x86_64 需要
  73. --> 执行事务检查
  74. ---> Package krb5-workstation.x86_64 :1.10.-.el6 will be 升级
  75. ---> Package krb5-workstation.x86_64 :1.10.-.el6 will be an update
  76. ---> Package libcom_err.x86_64 :1.41.-.el6 will be 升级
  77. --> 处理依赖关系 libcom_err = 1.41.-.el6,它被软件包 libss-1.41.-.el6.x86_64 需要
  78. --> 处理依赖关系 libcom_err = 1.41.-.el6,它被软件包 e2fsprogs-libs-1.41.-.el6.x86_64 需要
  79. --> 处理依赖关系 libcom_err = 1.41.-.el6,它被软件包 e2fsprogs-1.41.-.el6.x86_64 需要
  80. ---> Package libcom_err.x86_64 :1.41.-.el6 will be an update
  81. ---> Package libselinux.x86_64 :2.0.-5.8.el6 will be 升级
  82. --> 处理依赖关系 libselinux = 2.0.-5.8.el6,它被软件包 libselinux-utils-2.0.-5.8.el6.x86_64 需要
  83. --> 处理依赖关系 libselinux = 2.0.-5.8.el6,它被软件包 libselinux-python-2.0.-5.8.el6.x86_64 需要
  84. ---> Package libselinux.x86_64 :2.0.-.el6 will be an update
  85. ---> Package libsepol-devel.x86_64 :2.0.-.el6 will be 安装
  86. ---> Package ppl.x86_64 :0.10.-.el6 will be 安装
  87. --> 执行事务检查
  88. ---> Package e2fsprogs.x86_64 :1.41.-.el6 will be 升级
  89. ---> Package e2fsprogs.x86_64 :1.41.-.el6 will be an update
  90. ---> Package e2fsprogs-libs.x86_64 :1.41.-.el6 will be 升级
  91. ---> Package e2fsprogs-libs.x86_64 :1.41.-.el6 will be an update
  92. ---> Package libselinux-python.x86_64 :2.0.-5.8.el6 will be 升级
  93. ---> Package libselinux-python.x86_64 :2.0.-.el6 will be an update
  94. ---> Package libselinux-utils.x86_64 :2.0.-5.8.el6 will be 升级
  95. ---> Package libselinux-utils.x86_64 :2.0.-.el6 will be an update
  96. ---> Package libss.x86_64 :1.41.-.el6 will be 升级
  97. ---> Package libss.x86_64 :1.41.-.el6 will be an update
  98. --> 完成依赖关系计算
  99.  
  100. 依赖关系解决
  101.  
  102. ================================================================================================================
  103. 软件包 架构 版本 仓库 大小
  104. ================================================================================================================
  105. 正在安装:
  106. autoconf noarch 2.63-5.1.el6 base k
  107. automake noarch 1.11.-.el6 base k
  108. cmake x86_64 2.8.12.2-.el6 base 8.0 M
  109. gcc-c++ x86_64 4.4.-.el6 base 4.7 M
  110. libtool x86_64 2.2.-15.5.el6 base k
  111. ncurses-devel x86_64 5.7-4.20090207.el6 base k
  112. openssl-devel x86_64 1.0.1e-.el6 base 1.2 M
  113. subversion x86_64 1.6.-.el6_7 base 2.3 M
  114. 为依赖而安装:
  115. cloog-ppl x86_64 0.15.-1.2.el6 base k
  116. cpp x86_64 4.4.-.el6 base 3.7 M
  117. gcc x86_64 4.4.-.el6 base M
  118. keyutils-libs-devel x86_64 1.4-.el6 base k
  119. krb5-devel x86_64 1.10.-.el6 base k
  120. libcom_err-devel x86_64 1.41.-.el6 base k
  121. libkadm5 x86_64 1.10.-.el6 base k
  122. libselinux-devel x86_64 2.0.-.el6 base k
  123. libsepol-devel x86_64 2.0.-.el6 base k
  124. libstdc++-devel x86_64 4.4.-.el6 base 1.6 M
  125. mpfr x86_64 2.4.-.el6 base k
  126. perl-URI noarch 1.40-.el6 base k
  127. ppl x86_64 0.10.-.el6 base 1.3 M
  128. zlib-devel x86_64 1.2.-.el6 base k
  129. 为依赖而更新:
  130. e2fsprogs x86_64 1.41.-.el6 base k
  131. e2fsprogs-libs x86_64 1.41.-.el6 base k
  132. krb5-libs x86_64 1.10.-.el6 base k
  133. krb5-workstation x86_64 1.10.-.el6 base k
  134. libcom_err x86_64 1.41.-.el6 base k
  135. libgcc x86_64 4.4.-.el6 base k
  136. libgomp x86_64 4.4.-.el6 base k
  137. libselinux x86_64 2.0.-.el6 base k
  138. libselinux-python x86_64 2.0.-.el6 base k
  139. libselinux-utils x86_64 2.0.-.el6 base k
  140. libss x86_64 1.41.-.el6 base k
  141. libstdc++ x86_64 4.4.-.el6 base k
  142. openssl x86_64 1.0.1e-.el6 base 1.5 M
  143.  
  144. 事务概要
  145. ================================================================================================================
  146. Install Package(s)
  147. Upgrade Package(s)
  148.  
  149. 总下载量: M
  150. 下载软件包:
  151. (/): autoconf-2.63-5.1.el6.noarch.rpm | kB :
  152. (/): automake-1.11.-.el6.noarch.rpm | kB :
  153. (/): cloog-ppl-0.15.-1.2.el6.x86_64.rpm | kB :
  154. (/): cmake-2.8.12.2-.el6.x86_64.rpm | 8.0 MB :
  155. (/): cpp-4.4.-.el6.x86_64.rpm | 3.7 MB :
  156. (/): e2fsprogs-1.41.-.el6.x86_64.rpm | kB :
  157. (/): e2fsprogs-libs-1.41.-.el6.x86_64.rpm | kB :
  158. (/): gcc-4.4.-.el6.x86_64.rpm | MB :
  159. (/): gcc-c++-4.4.-.el6.x86_64.rpm | 4.7 MB :
  160. (/): keyutils-libs-devel-1.4-.el6.x86_64.rpm | kB :
  161. (/): krb5-devel-1.10.-.el6.x86_64.rpm | kB :
  162. (/): krb5-libs-1.10.-.el6.x86_64.rpm | kB :
  163. (/): krb5-workstation-1.10.-.el6.x86_64.rpm | kB :
  164. (/): libcom_err-1.41.-.el6.x86_64.rpm | kB :
  165. (/): libcom_err-devel-1.41.-.el6.x86_64.rpm | kB :
  166. (/): libgcc-4.4.-.el6.x86_64.rpm | kB :
  167. (/): libgomp-4.4.-.el6.x86_64.rpm | kB :
  168. (/): libkadm5-1.10.-.el6.x86_64.rpm | kB :
  169. (/): libselinux-2.0.-.el6.x86_64.rpm | kB :
  170. (/): libselinux-devel-2.0.-.el6.x86_64.rpm | kB :
  171. (/): libselinux-python-2.0.-.el6.x86_64.rpm | kB :
  172. (/): libselinux-utils-2.0.-.el6.x86_64.rpm | kB :
  173. (/): libsepol-devel-2.0.-.el6.x86_64.rpm | kB :
  174. (/): libss-1.41.-.el6.x86_64.rpm | kB :
  175. (/): libstdc++-4.4.-.el6.x86_64.rpm | kB :
  176. (/): libstdc++-devel-4.4.-.el6.x86_64.rpm | 1.6 MB :
  177. (/): libtool-2.2.-15.5.el6.x86_64.rpm | kB :
  178. (/): mpfr-2.4.-.el6.x86_64.rpm | kB :
  179. (/): ncurses-devel-5.7-4.20090207.el6.x86_64.rpm | kB :
  180. (/): openssl-1.0.1e-.el6.x86_64.rpm | 1.5 MB :
  181. (/): openssl-devel-1.0.1e-.el6.x86_64.rpm | 1.2 MB :
  182. (/): perl-URI-1.40-.el6.noarch.rpm | kB :
  183. (/): ppl-0.10.-.el6.x86_64.rpm | 1.3 MB :
  184. (/): subversion-1.6.-.el6_7.x86_64.rpm | 2.3 MB :
  185. (/): zlib-devel-1.2.-.el6.x86_64.rpm | kB :
  186. ----------------------------------------------------------------------------------------------------------------
  187. 总计 4.1 MB/s | MB :
  188. warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
  189. Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  190. Importing GPG key 0xC105B9DE:
  191. Userid : CentOS- Key (CentOS Official Signing Key) <centos--key@centos.org>
  192. Package: centos-release--.el6.centos.12.3.x86_64 (@anaconda-CentOS-.x86_64/6.7)
  193. From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
  194. 运行 rpm_check_debug
  195. 执行事务测试
  196. 事务测试成功
  197. 执行事务
  198. 正在升级 : libcom_err-1.41.-.el6.x86_64 /
  199. 正在升级 : libselinux-2.0.-.el6.x86_64 /
  200. 正在升级 : krb5-libs-1.10.-.el6.x86_64 /
  201. 正在升级 : libgcc-4.4.-.el6.x86_64 /
  202. 正在升级 : libstdc++-4.4.-.el6.x86_64 /
  203. 正在安装 : libkadm5-1.10.-.el6.x86_64 /
  204. 正在升级 : libss-1.41.-.el6.x86_64 /
  205. 正在安装 : autoconf-2.63-5.1.el6.noarch /
  206. 正在安装 : mpfr-2.4.-.el6.x86_64 /
  207. 正在安装 : cpp-4.4.-.el6.x86_64 /
  208. 正在安装 : automake-1.11.-.el6.noarch /
  209. 正在安装 : libstdc++-devel-4.4.-.el6.x86_64 /
  210. 正在安装 : ppl-0.10.-.el6.x86_64 /
  211. 正在安装 : cloog-ppl-0.15.-1.2.el6.x86_64 /
  212. 正在升级 : openssl-1.0.1e-.el6.x86_64 /
  213. 正在升级 : e2fsprogs-libs-1.41.-.el6.x86_64 /
  214. 正在安装 : libcom_err-devel-1.41.-.el6.x86_64 /
  215. 正在升级 : libgomp-4.4.-.el6.x86_64 /
  216. 正在安装 : gcc-4.4.-.el6.x86_64 /
  217. 正在安装 : libsepol-devel-2.0.-.el6.x86_64 /
  218. 正在安装 : libselinux-devel-2.0.-.el6.x86_64 /
  219. 正在安装 : perl-URI-1.40-.el6.noarch /
  220. 正在安装 : zlib-devel-1.2.-.el6.x86_64 /
  221. 正在安装 : keyutils-libs-devel-1.4-.el6.x86_64 /
  222. 正在安装 : krb5-devel-1.10.-.el6.x86_64 /
  223. 正在安装 : openssl-devel-1.0.1e-.el6.x86_64 /
  224. 正在安装 : subversion-1.6.-.el6_7.x86_64 /
  225. 正在安装 : gcc-c++-4.4.-.el6.x86_64 /
  226. 正在安装 : libtool-2.2.-15.5.el6.x86_64 /
  227. 正在升级 : e2fsprogs-1.41.-.el6.x86_64 /
  228. 正在升级 : krb5-workstation-1.10.-.el6.x86_64 /
  229. 正在安装 : cmake-2.8.12.2-.el6.x86_64 /
  230. 正在升级 : libselinux-python-2.0.-.el6.x86_64 /
  231. 正在升级 : libselinux-utils-2.0.-.el6.x86_64 /
  232. 正在安装 : ncurses-devel-5.7-4.20090207.el6.x86_64 /
  233. 清理 : krb5-workstation-1.10.-.el6.x86_64 /
  234. 清理 : e2fsprogs-1.41.-.el6.x86_64 /
  235. 清理 : openssl-1.0.1e-.el6.x86_64 /
  236. 清理 : krb5-libs-1.10.-.el6.x86_64 /
  237. 清理 : e2fsprogs-libs-1.41.-.el6.x86_64 /
  238. 清理 : libss-1.41.-.el6.x86_64 /
  239. 清理 : libselinux-utils-2.0.-5.8.el6.x86_64 /
  240. 清理 : libselinux-python-2.0.-5.8.el6.x86_64 /
  241. 清理 : libstdc++-4.4.-.el6.x86_64 /
  242. 清理 : libgcc-4.4.-.el6.x86_64 /
  243. 清理 : libselinux-2.0.-5.8.el6.x86_64 /
  244. 清理 : libcom_err-1.41.-.el6.x86_64 /
  245. 清理 : libgomp-4.4.-.el6.x86_64 /
  246. Verifying : libstdc++-devel-4.4.-.el6.x86_64 /
  247. Verifying : e2fsprogs-1.41.-.el6.x86_64 /
  248. Verifying : krb5-devel-1.10.-.el6.x86_64 /
  249. Verifying : libcom_err-1.41.-.el6.x86_64 /
  250. Verifying : cmake-2.8.12.2-.el6.x86_64 /
  251. Verifying : subversion-1.6.-.el6_7.x86_64 /
  252. Verifying : krb5-libs-1.10.-.el6.x86_64 /
  253. Verifying : e2fsprogs-libs-1.41.-.el6.x86_64 /
  254. Verifying : krb5-workstation-1.10.-.el6.x86_64 /
  255. Verifying : gcc-c++-4.4.-.el6.x86_64 /
  256. Verifying : automake-1.11.-.el6.noarch /
  257. Verifying : keyutils-libs-devel-1.4-.el6.x86_64 /
  258. Verifying : cpp-4.4.-.el6.x86_64 /
  259. Verifying : libselinux-2.0.-.el6.x86_64 /
  260. Verifying : mpfr-2.4.-.el6.x86_64 /
  261. Verifying : autoconf-2.63-5.1.el6.noarch /
  262. Verifying : zlib-devel-1.2.-.el6.x86_64 /
  263. Verifying : gcc-4.4.-.el6.x86_64 /
  264. Verifying : libstdc++-4.4.-.el6.x86_64 /
  265. Verifying : ncurses-devel-5.7-4.20090207.el6.x86_64 /
  266. Verifying : openssl-devel-1.0.1e-.el6.x86_64 /
  267. Verifying : perl-URI-1.40-.el6.noarch /
  268. Verifying : libgcc-4.4.-.el6.x86_64 /
  269. Verifying : ppl-0.10.-.el6.x86_64 /
  270. Verifying : libselinux-python-2.0.-.el6.x86_64 /
  271. Verifying : libss-1.41.-.el6.x86_64 /
  272. Verifying : libsepol-devel-2.0.-.el6.x86_64 /
  273. Verifying : libselinux-utils-2.0.-.el6.x86_64 /
  274. Verifying : libgomp-4.4.-.el6.x86_64 /
  275. Verifying : cloog-ppl-0.15.-1.2.el6.x86_64 /
  276. Verifying : openssl-1.0.1e-.el6.x86_64 /
  277. Verifying : libkadm5-1.10.-.el6.x86_64 /
  278. Verifying : libcom_err-devel-1.41.-.el6.x86_64 /
  279. Verifying : libselinux-devel-2.0.-.el6.x86_64 /
  280. Verifying : libtool-2.2.-15.5.el6.x86_64 /
  281. Verifying : libgomp-4.4.-.el6.x86_64 /
  282. Verifying : libss-1.41.-.el6.x86_64 /
  283. Verifying : libstdc++-4.4.-.el6.x86_64 /
  284. Verifying : openssl-1.0.1e-.el6.x86_64 /
  285. Verifying : libgcc-4.4.-.el6.x86_64 /
  286. Verifying : libselinux-utils-2.0.-5.8.el6.x86_64 /
  287. Verifying : e2fsprogs-1.41.-.el6.x86_64 /
  288. Verifying : krb5-libs-1.10.-.el6.x86_64 /
  289. Verifying : krb5-workstation-1.10.-.el6.x86_64 /
  290. Verifying : libselinux-2.0.-5.8.el6.x86_64 /
  291. Verifying : libcom_err-1.41.-.el6.x86_64 /
  292. Verifying : libselinux-python-2.0.-5.8.el6.x86_64 /
  293. Verifying : e2fsprogs-libs-1.41.-.el6.x86_64 /
  294.  
  295. 已安装:
  296. autoconf.noarch :2.63-5.1.el6 automake.noarch :1.11.-.el6
  297. cmake.x86_64 :2.8.12.2-.el6 gcc-c++.x86_64 :4.4.-.el6
  298. libtool.x86_64 :2.2.-15.5.el6 ncurses-devel.x86_64 :5.7-4.20090207.el6
  299. openssl-devel.x86_64 :1.0.1e-.el6 subversion.x86_64 :1.6.-.el6_7
  300.  
  301. 作为依赖被安装:
  302. cloog-ppl.x86_64 :0.15.-1.2.el6 cpp.x86_64 :4.4.-.el6
  303. gcc.x86_64 :4.4.-.el6 keyutils-libs-devel.x86_64 :1.4-.el6
  304. krb5-devel.x86_64 :1.10.-.el6 libcom_err-devel.x86_64 :1.41.-.el6
  305. libkadm5.x86_64 :1.10.-.el6 libselinux-devel.x86_64 :2.0.-.el6
  306. libsepol-devel.x86_64 :2.0.-.el6 libstdc++-devel.x86_64 :4.4.-.el6
  307. mpfr.x86_64 :2.4.-.el6 perl-URI.noarch :1.40-.el6
  308. ppl.x86_64 :0.10.-.el6 zlib-devel.x86_64 :1.2.-.el6
  309.  
  310. 作为依赖被升级:
  311. e2fsprogs.x86_64 :1.41.-.el6 e2fsprogs-libs.x86_64 :1.41.-.el6
  312. krb5-libs.x86_64 :1.10.-.el6 krb5-workstation.x86_64 :1.10.-.el6
  313. libcom_err.x86_64 :1.41.-.el6 libgcc.x86_64 :4.4.-.el6
  314. libgomp.x86_64 :4.4.-.el6 libselinux.x86_64 :2.0.-.el6
  315. libselinux-python.x86_64 :2.0.-.el6 libselinux-utils.x86_64 :2.0.-.el6
  316. libss.x86_64 :1.41.-.el6 libstdc++.x86_64 :4.4.-.el6
  317. openssl.x86_64 :1.0.1e-.el6
  318.  
  319. 完毕!
  320. [root@master soft]#

安装Maven

编译要求:Maven 3.0 or later
安装软件:apache-maven-3.0.5-bin.tar.gz

  1. [root@hadoop1 soft]# ls
  2. apache-maven-3.3.9-bin.tar.gz
  3. [root@hadoop1 soft]# chmod 755 apache-maven-3.3.9-bin.tar.gz
  4. [root@hadoop1 soft]# tar -zxvf apache-maven-3.3.9-bin.tar.gz
    。。。
    [root@hadoop1 soft]# mv apache-maven-3.3.9 /opt/
    [root@hadoop1 soft]# vi /etc/profile

配置mvn的环境变量

export M2_HOME=/opt/apache-maven-3.3.
export PATH=$PATH:$M2_HOME/bin

测试

  1. [root@hadoop1 soft]# mvn -v
  2. Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
  3. Maven home: /opt/apache-maven-3.3.9
  4. Java version: 1.8.0_73, vendor: Oracle Corporation
  5. Java home: /usr/local/jdk1.8.0_73/jre
  6. Default locale: zh_CN, platform encoding: UTF-8
  7. OS name: "linux", version: "2.6.32-573.el6.x86_64", arch: "amd64", family: "unix"
  8. [root@hadoop1 soft]#

安装Findbugs

编译要求:Findbugs 1.3.9 
安装软件:findbugs-3.0.1.tar.gz

  1. [root@hadoop1 soft]# ls
  2. findbugs-3.0.1.tar.gz
  3. [root@hadoop1 soft]# chmod 755 findbugs-3.0.1.tar.gz
  4. [root@hadoop1 soft]# tar -zxvf findbugs-3.0.1.tar.gz -C /opt

配置Findbugs环境变量

  1. [root@hadoop1 soft]# vi /etc/profile

export FINDBUGS_HOME=/opt/findbugs-3.0.1
export PATH=$PATH:$FINDBUGS_HOME/bin

测试

  1. [root@hadoop1 soft]# findbugs -version
  2. 3.0.1
  3. [root@hadoop1 soft]#

安装ProtocolBuffer

编译要求:ProtocolBuffer 2.5.0 
安装软件:protobuf-2.5.0.tar.gz,不建议用其它版本

  1. [root@hadoop1 soft]# ls
  2. protobuf-2.5.0.tar.gz
  3. [root@hadoop1 soft]# chmod 755 protobuf-2.5.0.tar.gz
  4. [root@hadoop1 soft]# tar -zxvf protobuf-2.5.0.tar.gz -C /opt
    [root@hadoop1 soft]# cd /opt/protobuf-2.5.0/
    [root@hadoop1 protobuf-2.5.0]# ./configure 
    [root@hadoop1 protobuf-2.5.0]# make
    [root@hadoop1 protobuf-2.5.0]# make install

测试

  1. [root@hadoop1 protobuf-2.5.0]# protoc --version
  2. libprotoc 2.5.0
  3. [root@hadoop1 protobuf-2.5.0]#

修改maven的配置文件,添加maven的下载源

[root@hadoop1 protobuf-2.5.0]# cd /opt/apache-maven-3.3.9/conf/
[root@hadoop1 conf]# vi settings.xml

在mirrors中添加alimaven的下载源

  1. <mirrors>
  2. <!-- mirror
  3. | Specifies a repository mirror site to use instead of a given repository. The repository that
  4. | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
  5. | for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
  6. |
  7.  
  8. <mirror>
  9. <id>alimaven</id>
  10. <mirrorOf>central</mirrorOf>
  11. <name>aliyun maven</name>
  12. <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  13. </mirror>
  14. <mirror>
  15. <id>mirrorId</id>
  16. <mirrorOf>repositoryId</mirrorOf>
  17. <name>Human Readable Name for this Mirror.</name>
  18. <url>http://my.repository.com/repo/path</url>
  19. </mirror>
  20. -->
  21. </mirrors>

安装Ant

  1. [root@hadoop1 soft]# ls
  2. apache-ant-1.9.-bin.tar.gz hadoop-2.7.-src
  3. [root@hadoop1 soft]# tar -zxvf apache-ant-1.9.-bin.tar.gz -C /opt/

配置环境变量

  1. [root@hadoop1 apache-ant-1.9.]# vi /etc/profile
  1. #Ant
  2. export ANT_HOME=/opt/apache-ant-1.9.
  3. export PATH=$PATH:$ANT_HOME/bin

检测

  1. [root@hadoop1 apache-ant-1.9.]# ant -version
  2. Apache Ant(TM) version 1.9. compiled on April
  3. [root@hadoop1 apache-ant-1.9.]#

安装Snappy

解压

  1. [root@hadoop1 soft]# ls
  2. hadoop-2.7.-src snappy-1.1..tar.gz
  3. [root@hadoop1 soft]# tar -zxvf snappy-1.1..tar.gz -C /opt/

安装

  1. [root@hadoop1 soft]# cd /opt/snappy-1.1./
  2. [root@hadoop1 snappy-1.1.]# ./configure
  3. [root@hadoop1 snappy-1.1.]# make
  4. [root@hadoop1 snappy-1.1.]# make install

查看snappy文件库

  1. [root@hadoop1 snappy-1.1.]# ls -lh /usr/local/lib | grep snappy
  2. -rw-r--r-- root root 228K 3 : libsnappy.a
  3. -rwxr-xr-x root root 3 : libsnappy.la
  4. lrwxrwxrwx root root 3 : libsnappy.so -> libsnappy.so.1.2.
  5. lrwxrwxrwx root root 3 : libsnappy.so. -> libsnappy.so.1.2.
  6. -rwxr-xr-x root root 145K 3 : libsnappy.so.1.2.
  7. [root@hadoop1 snappy-1.1.]#

开始编译hadoop

  1. [root@hadoop1 soft]# ls
  2. [root@hadoop1 soft]# tar -zxvf hadoop-2.7.5-src.tar.gz

在编译之前防止java.lang.OutOfMemoryError:Java heap space堆栈问题,在centos系统中执行命令

  1. [root@hadoop1 snappy-1.1.]# export MAVEN_OPTS="-Xms256m -Xmx512m"

进入源码包下,执行命令进行编译

  1. [root@hadoop1 snappy-1.1.]# cd /soft/hadoop-2.7.-src/
  2. [root@hadoop1 hadoop-2.7.-src]# mvn package -Pdist,native,docs -DskipTests -Dtar

如果中途编译失败,并且不要文档的话,请使用这个命令:

  1. [root@master ~]# mvn clear package -Pdist,native -DskipTests -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy -Drequire.openssl

编译成功之后,hadoop-2.7.5.tar.gz位于/soft/hadoop-2.7.5-src/hadoop-dist/target目录下,这是编译后文件夹的状态

至此,大功告成!!!

Hadoop学习之路(三)Hadoop-2.7.5在CentOS-6.7上的编译的更多相关文章

  1. 《Hadoop学习之路》学习实践

    (实践机器:blog-bench) 本文用作博文<Hadoop学习之路>实践过程中遇到的问题记录. 本文所学习的博文为博主“扎心了,老铁” 博文记录.参考链接https://www.cnb ...

  2. 阿里封神谈hadoop学习之路

    阿里封神谈hadoop学习之路   封神 2016-04-14 16:03:51 浏览3283 评论3 发表于: 阿里云E-MapReduce >> 开源大数据周刊 hadoop 学生 s ...

  3. Hadoop学习总结之五:Hadoop的运行痕迹

    Hadoop学习总结之五:Hadoop的运行痕迹   Hadoop 学习总结之一:HDFS简介 Hadoop学习总结之二:HDFS读写过程解析 Hadoop学习总结之三:Map-Reduce入门 Ha ...

  4. 学习之路三十九:新手学习 - Windows API

    来到了新公司,一开始就要做个程序去获取另外一个程序里的数据,哇,挑战性很大. 经过两周的学习,终于搞定,主要还是对Windows API有了更多的了解. 文中所有的消息常量,API,结构体都整理出来了 ...

  5. Hadoop 学习之路(三)—— 分布式计算框架 MapReduce

    一.MapReduce概述 Hadoop MapReduce是一个分布式计算框架,用于编写批处理应用程序.编写好的程序可以提交到Hadoop集群上用于并行处理大规模的数据集. MapReduce作业通 ...

  6. 小强的Hadoop学习之路

    本人一直在做NET开发,接触这行有6年了吧.毕业也快四年了(6年是因为大学就开始在一家小公司做门户网站,哈哈哈),之前一直秉承着学要精,就一直一门心思的在做NET(也是懒吧).最近的工作一直都和大数据 ...

  7. Hadoop学习之旅三:MapReduce

    MapReduce编程模型 在Google的一篇重要的论文MapReduce: Simplified Data Processing on Large Clusters中提到,Google公司有大量的 ...

  8. Hadoop学习之路(二)Hadoop发展背景

    Hadoop产生的背景 1. HADOOP最早起源于Nutch.Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取.索引.查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题—— ...

  9. 我的hadoop学习之路

    Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上. Ha ...

  10. Hadoop学习之路(十三)MapReduce的初识

    MapReduce是什么 首先让我们来重温一下 hadoop 的四大组件: HDFS:分布式存储系统 MapReduce:分布式计算系统 YARN:hadoop 的资源调度系统 Common:以上三大 ...

随机推荐

  1. 南阳nyoj 56 阶乘因式分解(一)

    阶乘因式分解(一) 时间限制:3000 ms  |  内存限制:65535 KB 难度:2   描述 给定两个数m,n,其中m是一个素数. 将n(0<=n<=10000)的阶乘分解质因数, ...

  2. Linux学习8-Linux常用命令(4)

    链接命令     命令名称:ln 命令英文原意:link 命令所在路径:/bin/ln 执行权限:所有用户 功能描述:生成链接文件 语法:ln 选项[-s][原文件] [目标文件] 选项: -s 创建 ...

  3. python学习之老男孩python全栈第九期_数据库day001知识点总结 —— MySQL操作数据库以及数据表、基本数据类型、基本增删改查、外键定义以及创建

    一. 学习SQL语句规则以及外键 1. 操作文件夹 create database db2; 创建文件夹 create database db2 default charset utf8; 创建文件夹 ...

  4. 涉及到【分页】的table的请求模式

    step:1 点击分页器的内容 trigger事件句柄 (pagination, filters, sorter) => {//或者(page, pageSize)等 this.props.on ...

  5. react知识点汇总

    ①uncontrolComponent & controlComponent If your form is incredibly simple in terms of UI feedback ...

  6. 为样式找到应用目标-CSS选择器

    1,常用选择器:元素(标签/简单)选择器.ID选择器.类选择器.后代选择器(可以将类或者ID应用于它们的祖先,然后使用后代选择器来定位) 2,伪类:有时候,我们需要根据文档结构之外的其他条件对元素应用 ...

  7. 朴素贝叶斯文本分类实现 python cherry分类器

    贝叶斯模型在机器学习以及人工智能中都有出现,cherry分类器使用了朴素贝叶斯模型算法,经过简单的优化,使用1000个训练数据就能得到97.5%的准确率.虽然现在主流的框架都带有朴素贝叶斯模型算法,大 ...

  8. 一步一步 Pwn RouterOS之调试环境搭建&&漏洞分析&&poc

    前言 本文由 本人 首发于 先知安全技术社区: https://xianzhi.aliyun.com/forum/user/5274 本文分析 Vault 7 中泄露的 RouterOs 漏洞.漏洞影 ...

  9. ecloipse背景修改豆沙

    Eclipse背景色的修改 Eclipse背景色的修改,修改为豆沙色  值是85 123 205 一.修改编辑区   ①这个比较简单一般都会不多说. 1.首先点击Window 然后选择Preferen ...

  10. gridview导出数据,如果为0开头,丢失0解决方案

    1.protected void GridView1_RowDataBound( object sender, GridViewRowEventArgs e )  {    if (e.Row.Row ...