下载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。
Requirements: * Unix System * JDK 1.7+ * Maven 3.0 or later * Findbugs 1.3.9 (if running findbugs) * ProtocolBuffer 2.5.0 * CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac * Zlib devel (if compiling native code) * openssl devel ( if compiling native hadoop-pipes and to get the best HDFS encryption performance ) * Linux FUSE (Filesystem in Userspace) version 2.6 or above ( if compiling fuse_dfs ) * Internet connection for first build (to fetch all Maven and Hadoop dependencies)
软件安装
对应以上需求,我们准备好所要求版本的这些软件。
JDK的安装
选择版本:jdk1.8.0_73
安装依赖包
根据编译指导文件BUILDING.txt,安装相关依赖程序包
[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.163.com 6 * extras: mirrors.163.com 7 * updates: mirrors.cqu.edu.cn 8 base | 3.7 kB 00:00 9 extras | 3.4 kB 00:00 10 updates | 3.4 kB 00:00 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 0:2.63-5.1.el6 will be 安装 18 ---> Package automake.noarch 0:1.11.1-4.el6 will be 安装 19 ---> Package cmake.x86_64 0:2.8.12.2-4.el6 will be 安装 20 ---> Package gcc-c++.x86_64 0:4.4.7-18.el6 will be 安装 21 --> 处理依赖关系 libstdc++-devel = 4.4.7-18.el6,它被软件包 gcc-c++-4.4.7-18.el6.x86_64 需要 22 --> 处理依赖关系 libstdc++ = 4.4.7-18.el6,它被软件包 gcc-c++-4.4.7-18.el6.x86_64 需要 23 --> 处理依赖关系 gcc = 4.4.7-18.el6,它被软件包 gcc-c++-4.4.7-18.el6.x86_64 需要 24 --> 处理依赖关系 libmpfr.so.1()(64bit),它被软件包 gcc-c++-4.4.7-18.el6.x86_64 需要 25 ---> Package libtool.x86_64 0:2.2.6-15.5.el6 will be 安装 26 ---> Package ncurses-devel.x86_64 0:5.7-4.20090207.el6 will be 安装 27 ---> Package openssl-devel.x86_64 0:1.0.1e-57.el6 will be 安装 28 --> 处理依赖关系 openssl = 1.0.1e-57.el6,它被软件包 openssl-devel-1.0.1e-57.el6.x86_64 需要 29 --> 处理依赖关系 zlib-devel,它被软件包 openssl-devel-1.0.1e-57.el6.x86_64 需要 30 --> 处理依赖关系 krb5-devel,它被软件包 openssl-devel-1.0.1e-57.el6.x86_64 需要 31 ---> Package subversion.x86_64 0:1.6.11-15.el6_7 will be 安装 32 --> 处理依赖关系 perl(URI) >= 1.17,它被软件包 subversion-1.6.11-15.el6_7.x86_64 需要 33 --> 执行事务检查 34 ---> Package gcc.x86_64 0:4.4.7-18.el6 will be 安装 35 --> 处理依赖关系 libgomp = 4.4.7-18.el6,它被软件包 gcc-4.4.7-18.el6.x86_64 需要 36 --> 处理依赖关系 cpp = 4.4.7-18.el6,它被软件包 gcc-4.4.7-18.el6.x86_64 需要 37 --> 处理依赖关系 libgcc >= 4.4.7-18.el6,它被软件包 gcc-4.4.7-18.el6.x86_64 需要 38 --> 处理依赖关系 cloog-ppl >= 0.15,它被软件包 gcc-4.4.7-18.el6.x86_64 需要 39 ---> Package krb5-devel.x86_64 0:1.10.3-65.el6 will be 安装 40 --> 处理依赖关系 libkadm5(x86-64) = 1.10.3-65.el6,它被软件包 krb5-devel-1.10.3-65.el6.x86_64 需要 41 --> 处理依赖关系 krb5-libs = 1.10.3-65.el6,它被软件包 krb5-devel-1.10.3-65.el6.x86_64 需要 42 --> 处理依赖关系 libselinux-devel,它被软件包 krb5-devel-1.10.3-65.el6.x86_64 需要 43 --> 处理依赖关系 libcom_err-devel,它被软件包 krb5-devel-1.10.3-65.el6.x86_64 需要 44 --> 处理依赖关系 keyutils-libs-devel,它被软件包 krb5-devel-1.10.3-65.el6.x86_64 需要 45 ---> Package libstdc++.x86_64 0:4.4.7-16.el6 will be 升级 46 ---> Package libstdc++.x86_64 0:4.4.7-18.el6 will be an update 47 ---> Package libstdc++-devel.x86_64 0:4.4.7-18.el6 will be 安装 48 ---> Package mpfr.x86_64 0:2.4.1-6.el6 will be 安装 49 ---> Package openssl.x86_64 0:1.0.1e-42.el6 will be 升级 50 ---> Package openssl.x86_64 0:1.0.1e-57.el6 will be an update 51 ---> Package perl-URI.noarch 0:1.40-2.el6 will be 安装 52 ---> Package zlib-devel.x86_64 0:1.2.3-29.el6 will be 安装 53 --> 执行事务检查 54 ---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be 安装 55 --> 处理依赖关系 libppl_c.so.2()(64bit),它被软件包 cloog-ppl-0.15.7-1.2.el6.x86_64 需要 56 --> 处理依赖关系 libppl.so.7()(64bit),它被软件包 cloog-ppl-0.15.7-1.2.el6.x86_64 需要 57 ---> Package cpp.x86_64 0:4.4.7-18.el6 will be 安装 58 ---> Package keyutils-libs-devel.x86_64 0:1.4-5.el6 will be 安装 59 ---> Package krb5-libs.x86_64 0:1.10.3-42.el6 will be 升级 60 --> 处理依赖关系 krb5-libs = 1.10.3-42.el6,它被软件包 krb5-workstation-1.10.3-42.el6.x86_64 需要 61 ---> Package krb5-libs.x86_64 0:1.10.3-65.el6 will be an update 62 ---> Package libcom_err-devel.x86_64 0:1.41.12-23.el6 will be 安装 63 --> 处理依赖关系 libcom_err = 1.41.12-23.el6,它被软件包 libcom_err-devel-1.41.12-23.el6.x86_64 需要 64 ---> Package libgcc.x86_64 0:4.4.7-16.el6 will be 升级 65 ---> Package libgcc.x86_64 0:4.4.7-18.el6 will be an update 66 ---> Package libgomp.x86_64 0:4.4.7-16.el6 will be 升级 67 ---> Package libgomp.x86_64 0:4.4.7-18.el6 will be an update 68 ---> Package libkadm5.x86_64 0:1.10.3-65.el6 will be 安装 69 ---> Package libselinux-devel.x86_64 0:2.0.94-7.el6 will be 安装 70 --> 处理依赖关系 libselinux = 2.0.94-7.el6,它被软件包 libselinux-devel-2.0.94-7.el6.x86_64 需要 71 --> 处理依赖关系 libsepol-devel >= 2.0.32-1,它被软件包 libselinux-devel-2.0.94-7.el6.x86_64 需要 72 --> 处理依赖关系 pkgconfig(libsepol),它被软件包 libselinux-devel-2.0.94-7.el6.x86_64 需要 73 --> 执行事务检查 74 ---> Package krb5-workstation.x86_64 0:1.10.3-42.el6 will be 升级 75 ---> Package krb5-workstation.x86_64 0:1.10.3-65.el6 will be an update 76 ---> Package libcom_err.x86_64 0:1.41.12-22.el6 will be 升级 77 --> 处理依赖关系 libcom_err = 1.41.12-22.el6,它被软件包 libss-1.41.12-22.el6.x86_64 需要 78 --> 处理依赖关系 libcom_err = 1.41.12-22.el6,它被软件包 e2fsprogs-libs-1.41.12-22.el6.x86_64 需要 79 --> 处理依赖关系 libcom_err = 1.41.12-22.el6,它被软件包 e2fsprogs-1.41.12-22.el6.x86_64 需要 80 ---> Package libcom_err.x86_64 0:1.41.12-23.el6 will be an update 81 ---> Package libselinux.x86_64 0:2.0.94-5.8.el6 will be 升级 82 --> 处理依赖关系 libselinux = 2.0.94-5.8.el6,它被软件包 libselinux-utils-2.0.94-5.8.el6.x86_64 需要 83 --> 处理依赖关系 libselinux = 2.0.94-5.8.el6,它被软件包 libselinux-python-2.0.94-5.8.el6.x86_64 需要 84 ---> Package libselinux.x86_64 0:2.0.94-7.el6 will be an update 85 ---> Package libsepol-devel.x86_64 0:2.0.41-4.el6 will be 安装 86 ---> Package ppl.x86_64 0:0.10.2-11.el6 will be 安装 87 --> 执行事务检查 88 ---> Package e2fsprogs.x86_64 0:1.41.12-22.el6 will be 升级 89 ---> Package e2fsprogs.x86_64 0:1.41.12-23.el6 will be an update 90 ---> Package e2fsprogs-libs.x86_64 0:1.41.12-22.el6 will be 升级 91 ---> Package e2fsprogs-libs.x86_64 0:1.41.12-23.el6 will be an update 92 ---> Package libselinux-python.x86_64 0:2.0.94-5.8.el6 will be 升级 93 ---> Package libselinux-python.x86_64 0:2.0.94-7.el6 will be an update 94 ---> Package libselinux-utils.x86_64 0:2.0.94-5.8.el6 will be 升级 95 ---> Package libselinux-utils.x86_64 0:2.0.94-7.el6 will be an update 96 ---> Package libss.x86_64 0:1.41.12-22.el6 will be 升级 97 ---> Package libss.x86_64 0:1.41.12-23.el6 will be an update 98 --> 完成依赖关系计算 99 100 依赖关系解决 101 102 ================================================================================================================ 103 软件包 架构 版本 仓库 大小 104 ================================================================================================================ 105 正在安装: 106 autoconf noarch 2.63-5.1.el6 base 781 k 107 automake noarch 1.11.1-4.el6 base 550 k 108 cmake x86_64 2.8.12.2-4.el6 base 8.0 M 109 gcc-c++ x86_64 4.4.7-18.el6 base 4.7 M 110 libtool x86_64 2.2.6-15.5.el6 base 564 k 111 ncurses-devel x86_64 5.7-4.20090207.el6 base 641 k 112 openssl-devel x86_64 1.0.1e-57.el6 base 1.2 M 113 subversion x86_64 1.6.11-15.el6_7 base 2.3 M 114 为依赖而安装: 115 cloog-ppl x86_64 0.15.7-1.2.el6 base 93 k 116 cpp x86_64 4.4.7-18.el6 base 3.7 M 117 gcc x86_64 4.4.7-18.el6 base 10 M 118 keyutils-libs-devel x86_64 1.4-5.el6 base 29 k 119 krb5-devel x86_64 1.10.3-65.el6 base 504 k 120 libcom_err-devel x86_64 1.41.12-23.el6 base 33 k 121 libkadm5 x86_64 1.10.3-65.el6 base 143 k 122 libselinux-devel x86_64 2.0.94-7.el6 base 137 k 123 libsepol-devel x86_64 2.0.41-4.el6 base 64 k 124 libstdc++-devel x86_64 4.4.7-18.el6 base 1.6 M 125 mpfr x86_64 2.4.1-6.el6 base 157 k 126 perl-URI noarch 1.40-2.el6 base 117 k 127 ppl x86_64 0.10.2-11.el6 base 1.3 M 128 zlib-devel x86_64 1.2.3-29.el6 base 44 k 129 为依赖而更新: 130 e2fsprogs x86_64 1.41.12-23.el6 base 554 k 131 e2fsprogs-libs x86_64 1.41.12-23.el6 base 121 k 132 krb5-libs x86_64 1.10.3-65.el6 base 675 k 133 krb5-workstation x86_64 1.10.3-65.el6 base 814 k 134 libcom_err x86_64 1.41.12-23.el6 base 38 k 135 libgcc x86_64 4.4.7-18.el6 base 103 k 136 libgomp x86_64 4.4.7-18.el6 base 134 k 137 libselinux x86_64 2.0.94-7.el6 base 109 k 138 libselinux-python x86_64 2.0.94-7.el6 base 203 k 139 libselinux-utils x86_64 2.0.94-7.el6 base 82 k 140 libss x86_64 1.41.12-23.el6 base 42 k 141 libstdc++ x86_64 4.4.7-18.el6 base 295 k 142 openssl x86_64 1.0.1e-57.el6 base 1.5 M 143 144 事务概要 145 ================================================================================================================ 146 Install 22 Package(s) 147 Upgrade 13 Package(s) 148 149 总下载量:41 M 150 下载软件包: 151 (1/35): autoconf-2.63-5.1.el6.noarch.rpm | 781 kB 00:00 152 (2/35): automake-1.11.1-4.el6.noarch.rpm | 550 kB 00:00 153 (3/35): cloog-ppl-0.15.7-1.2.el6.x86_64.rpm | 93 kB 00:00 154 (4/35): cmake-2.8.12.2-4.el6.x86_64.rpm | 8.0 MB 00:00 155 (5/35): cpp-4.4.7-18.el6.x86_64.rpm | 3.7 MB 00:00 156 (6/35): e2fsprogs-1.41.12-23.el6.x86_64.rpm | 554 kB 00:00 157 (7/35): e2fsprogs-libs-1.41.12-23.el6.x86_64.rpm | 121 kB 00:00 158 (8/35): gcc-4.4.7-18.el6.x86_64.rpm | 10 MB 00:01 159 (9/35): gcc-c++-4.4.7-18.el6.x86_64.rpm | 4.7 MB 00:00 160 (10/35): keyutils-libs-devel-1.4-5.el6.x86_64.rpm | 29 kB 00:00 161 (11/35): krb5-devel-1.10.3-65.el6.x86_64.rpm | 504 kB 00:00 162 (12/35): krb5-libs-1.10.3-65.el6.x86_64.rpm | 675 kB 00:00 163 (13/35): krb5-workstation-1.10.3-65.el6.x86_64.rpm | 814 kB 00:00 164 (14/35): libcom_err-1.41.12-23.el6.x86_64.rpm | 38 kB 00:00 165 (15/35): libcom_err-devel-1.41.12-23.el6.x86_64.rpm | 33 kB 00:00 166 (16/35): libgcc-4.4.7-18.el6.x86_64.rpm | 103 kB 00:00 167 (17/35): libgomp-4.4.7-18.el6.x86_64.rpm | 134 kB 00:00 168 (18/35): libkadm5-1.10.3-65.el6.x86_64.rpm | 143 kB 00:00 169 (19/35): libselinux-2.0.94-7.el6.x86_64.rpm | 109 kB 00:00 170 (20/35): libselinux-devel-2.0.94-7.el6.x86_64.rpm | 137 kB 00:00 171 (21/35): libselinux-python-2.0.94-7.el6.x86_64.rpm | 203 kB 00:00 172 (22/35): libselinux-utils-2.0.94-7.el6.x86_64.rpm | 82 kB 00:00 173 (23/35): libsepol-devel-2.0.41-4.el6.x86_64.rpm | 64 kB 00:00 174 (24/35): libss-1.41.12-23.el6.x86_64.rpm | 42 kB 00:00 175 (25/35): libstdc++-4.4.7-18.el6.x86_64.rpm | 295 kB 00:00 176 (26/35): libstdc++-devel-4.4.7-18.el6.x86_64.rpm | 1.6 MB 00:01 177 (27/35): libtool-2.2.6-15.5.el6.x86_64.rpm | 564 kB 00:00 178 (28/35): mpfr-2.4.1-6.el6.x86_64.rpm | 157 kB 00:00 179 (29/35): ncurses-devel-5.7-4.20090207.el6.x86_64.rpm | 641 kB 00:00 180 (30/35): openssl-1.0.1e-57.el6.x86_64.rpm | 1.5 MB 00:00 181 (31/35): openssl-devel-1.0.1e-57.el6.x86_64.rpm | 1.2 MB 00:00 182 (32/35): perl-URI-1.40-2.el6.noarch.rpm | 117 kB 00:00 183 (33/35): ppl-0.10.2-11.el6.x86_64.rpm | 1.3 MB 00:00 184 (34/35): subversion-1.6.11-15.el6_7.x86_64.rpm | 2.3 MB 00:00 185 (35/35): zlib-devel-1.2.3-29.el6.x86_64.rpm | 44 kB 00:00 186 ---------------------------------------------------------------------------------------------------------------- 187 总计 4.1 MB/s | 41 MB 00:09 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-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org> 192 Package: centos-release-6-7.el6.centos.12.3.x86_64 (@anaconda-CentOS-201508042137.x86_64/6.7) 193 From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 194 运行 rpm_check_debug 195 执行事务测试 196 事务测试成功 197 执行事务 198 正在升级 : libcom_err-1.41.12-23.el6.x86_64 1/48 199 正在升级 : libselinux-2.0.94-7.el6.x86_64 2/48 200 正在升级 : krb5-libs-1.10.3-65.el6.x86_64 3/48 201 正在升级 : libgcc-4.4.7-18.el6.x86_64 4/48 202 正在升级 : libstdc++-4.4.7-18.el6.x86_64 5/48 203 正在安装 : libkadm5-1.10.3-65.el6.x86_64 6/48 204 正在升级 : libss-1.41.12-23.el6.x86_64 7/48 205 正在安装 : autoconf-2.63-5.1.el6.noarch 8/48 206 正在安装 : mpfr-2.4.1-6.el6.x86_64 9/48 207 正在安装 : cpp-4.4.7-18.el6.x86_64 10/48 208 正在安装 : automake-1.11.1-4.el6.noarch 11/48 209 正在安装 : libstdc++-devel-4.4.7-18.el6.x86_64 12/48 210 正在安装 : ppl-0.10.2-11.el6.x86_64 13/48 211 正在安装 : cloog-ppl-0.15.7-1.2.el6.x86_64 14/48 212 正在升级 : openssl-1.0.1e-57.el6.x86_64 15/48 213 正在升级 : e2fsprogs-libs-1.41.12-23.el6.x86_64 16/48 214 正在安装 : libcom_err-devel-1.41.12-23.el6.x86_64 17/48 215 正在升级 : libgomp-4.4.7-18.el6.x86_64 18/48 216 正在安装 : gcc-4.4.7-18.el6.x86_64 19/48 217 正在安装 : libsepol-devel-2.0.41-4.el6.x86_64 20/48 218 正在安装 : libselinux-devel-2.0.94-7.el6.x86_64 21/48 219 正在安装 : perl-URI-1.40-2.el6.noarch 22/48 220 正在安装 : zlib-devel-1.2.3-29.el6.x86_64 23/48 221 正在安装 : keyutils-libs-devel-1.4-5.el6.x86_64 24/48 222 正在安装 : krb5-devel-1.10.3-65.el6.x86_64 25/48 223 正在安装 : openssl-devel-1.0.1e-57.el6.x86_64 26/48 224 正在安装 : subversion-1.6.11-15.el6_7.x86_64 27/48 225 正在安装 : gcc-c++-4.4.7-18.el6.x86_64 28/48 226 正在安装 : libtool-2.2.6-15.5.el6.x86_64 29/48 227 正在升级 : e2fsprogs-1.41.12-23.el6.x86_64 30/48 228 正在升级 : krb5-workstation-1.10.3-65.el6.x86_64 31/48 229 正在安装 : cmake-2.8.12.2-4.el6.x86_64 32/48 230 正在升级 : libselinux-python-2.0.94-7.el6.x86_64 33/48 231 正在升级 : libselinux-utils-2.0.94-7.el6.x86_64 34/48 232 正在安装 : ncurses-devel-5.7-4.20090207.el6.x86_64 35/48 233 清理 : krb5-workstation-1.10.3-42.el6.x86_64 36/48 234 清理 : e2fsprogs-1.41.12-22.el6.x86_64 37/48 235 清理 : openssl-1.0.1e-42.el6.x86_64 38/48 236 清理 : krb5-libs-1.10.3-42.el6.x86_64 39/48 237 清理 : e2fsprogs-libs-1.41.12-22.el6.x86_64 40/48 238 清理 : libss-1.41.12-22.el6.x86_64 41/48 239 清理 : libselinux-utils-2.0.94-5.8.el6.x86_64 42/48 240 清理 : libselinux-python-2.0.94-5.8.el6.x86_64 43/48 241 清理 : libstdc++-4.4.7-16.el6.x86_64 44/48 242 清理 : libgcc-4.4.7-16.el6.x86_64 45/48 243 清理 : libselinux-2.0.94-5.8.el6.x86_64 46/48 244 清理 : libcom_err-1.41.12-22.el6.x86_64 47/48 245 清理 : libgomp-4.4.7-16.el6.x86_64 48/48 246 Verifying : libstdc++-devel-4.4.7-18.el6.x86_64 1/48 247 Verifying : e2fsprogs-1.41.12-23.el6.x86_64 2/48 248 Verifying : krb5-devel-1.10.3-65.el6.x86_64 3/48 249 Verifying : libcom_err-1.41.12-23.el6.x86_64 4/48 250 Verifying : cmake-2.8.12.2-4.el6.x86_64 5/48 251 Verifying : subversion-1.6.11-15.el6_7.x86_64 6/48 252 Verifying : krb5-libs-1.10.3-65.el6.x86_64 7/48 253 Verifying : e2fsprogs-libs-1.41.12-23.el6.x86_64 8/48 254 Verifying : krb5-workstation-1.10.3-65.el6.x86_64 9/48 255 Verifying : gcc-c++-4.4.7-18.el6.x86_64 10/48 256 Verifying : automake-1.11.1-4.el6.noarch 11/48 257 Verifying : keyutils-libs-devel-1.4-5.el6.x86_64 12/48 258 Verifying : cpp-4.4.7-18.el6.x86_64 13/48 259 Verifying : libselinux-2.0.94-7.el6.x86_64 14/48 260 Verifying : mpfr-2.4.1-6.el6.x86_64 15/48 261 Verifying : autoconf-2.63-5.1.el6.noarch 16/48 262 Verifying : zlib-devel-1.2.3-29.el6.x86_64 17/48 263 Verifying : gcc-4.4.7-18.el6.x86_64 18/48 264 Verifying : libstdc++-4.4.7-18.el6.x86_64 19/48 265 Verifying : ncurses-devel-5.7-4.20090207.el6.x86_64 20/48 266 Verifying : openssl-devel-1.0.1e-57.el6.x86_64 21/48 267 Verifying : perl-URI-1.40-2.el6.noarch 22/48 268 Verifying : libgcc-4.4.7-18.el6.x86_64 23/48 269 Verifying : ppl-0.10.2-11.el6.x86_64 24/48 270 Verifying : libselinux-python-2.0.94-7.el6.x86_64 25/48 271 Verifying : libss-1.41.12-23.el6.x86_64 26/48 272 Verifying : libsepol-devel-2.0.41-4.el6.x86_64 27/48 273 Verifying : libselinux-utils-2.0.94-7.el6.x86_64 28/48 274 Verifying : libgomp-4.4.7-18.el6.x86_64 29/48 275 Verifying : cloog-ppl-0.15.7-1.2.el6.x86_64 30/48 276 Verifying : openssl-1.0.1e-57.el6.x86_64 31/48 277 Verifying : libkadm5-1.10.3-65.el6.x86_64 32/48 278 Verifying : libcom_err-devel-1.41.12-23.el6.x86_64 33/48 279 Verifying : libselinux-devel-2.0.94-7.el6.x86_64 34/48 280 Verifying : libtool-2.2.6-15.5.el6.x86_64 35/48 281 Verifying : libgomp-4.4.7-16.el6.x86_64 36/48 282 Verifying : libss-1.41.12-22.el6.x86_64 37/48 283 Verifying : libstdc++-4.4.7-16.el6.x86_64 38/48 284 Verifying : openssl-1.0.1e-42.el6.x86_64 39/48 285 Verifying : libgcc-4.4.7-16.el6.x86_64 40/48 286 Verifying : libselinux-utils-2.0.94-5.8.el6.x86_64 41/48 287 Verifying : e2fsprogs-1.41.12-22.el6.x86_64 42/48 288 Verifying : krb5-libs-1.10.3-42.el6.x86_64 43/48 289 Verifying : krb5-workstation-1.10.3-42.el6.x86_64 44/48 290 Verifying : libselinux-2.0.94-5.8.el6.x86_64 45/48 291 Verifying : libcom_err-1.41.12-22.el6.x86_64 46/48 292 Verifying : libselinux-python-2.0.94-5.8.el6.x86_64 47/48 293 Verifying : e2fsprogs-libs-1.41.12-22.el6.x86_64 48/48 294 295 已安装: 296 autoconf.noarch 0:2.63-5.1.el6 automake.noarch 0:1.11.1-4.el6 297 cmake.x86_64 0:2.8.12.2-4.el6 gcc-c++.x86_64 0:4.4.7-18.el6 298 libtool.x86_64 0:2.2.6-15.5.el6 ncurses-devel.x86_64 0:5.7-4.20090207.el6 299 openssl-devel.x86_64 0:1.0.1e-57.el6 subversion.x86_64 0:1.6.11-15.el6_7 300 301 作为依赖被安装: 302 cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-18.el6 303 gcc.x86_64 0:4.4.7-18.el6 keyutils-libs-devel.x86_64 0:1.4-5.el6 304 krb5-devel.x86_64 0:1.10.3-65.el6 libcom_err-devel.x86_64 0:1.41.12-23.el6 305 libkadm5.x86_64 0:1.10.3-65.el6 libselinux-devel.x86_64 0:2.0.94-7.el6 306 libsepol-devel.x86_64 0:2.0.41-4.el6 libstdc++-devel.x86_64 0:4.4.7-18.el6 307 mpfr.x86_64 0:2.4.1-6.el6 perl-URI.noarch 0:1.40-2.el6 308 ppl.x86_64 0:0.10.2-11.el6 zlib-devel.x86_64 0:1.2.3-29.el6 309 310 作为依赖被升级: 311 e2fsprogs.x86_64 0:1.41.12-23.el6 e2fsprogs-libs.x86_64 0:1.41.12-23.el6 312 krb5-libs.x86_64 0:1.10.3-65.el6 krb5-workstation.x86_64 0:1.10.3-65.el6 313 libcom_err.x86_64 0:1.41.12-23.el6 libgcc.x86_64 0:4.4.7-18.el6 314 libgomp.x86_64 0:4.4.7-18.el6 libselinux.x86_64 0:2.0.94-7.el6 315 libselinux-python.x86_64 0:2.0.94-7.el6 libselinux-utils.x86_64 0:2.0.94-7.el6 316 libss.x86_64 0:1.41.12-23.el6 libstdc++.x86_64 0:4.4.7-18.el6 317 openssl.x86_64 0:1.0.1e-57.el6 318 319 完毕! 320 [root@master soft]#
安装Maven
编译要求:Maven 3.0 or later
安装软件:apache-maven-3.0.5-bin.tar.gz
[root@hadoop1 soft]# ls apache-maven-3.3.9-bin.tar.gz [root@hadoop1 soft]# chmod 755 apache-maven-3.3.9-bin.tar.gz [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
测试
[root@hadoop1 soft]# mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /opt/apache-maven-3.3.9 Java version: 1.8.0_73, vendor: Oracle Corporation Java home: /usr/local/jdk1.8.0_73/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "2.6.32-573.el6.x86_64", arch: "amd64", family: "unix" [root@hadoop1 soft]#
安装Findbugs
编译要求:Findbugs 1.3.9
安装软件:findbugs-3.0.1.tar.gz
[root@hadoop1 soft]# ls findbugs-3.0.1.tar.gz [root@hadoop1 soft]# chmod 755 findbugs-3.0.1.tar.gz [root@hadoop1 soft]# tar -zxvf findbugs-3.0.1.tar.gz -C /opt
配置Findbugs环境变量
[root@hadoop1 soft]# vi /etc/profile
export FINDBUGS_HOME=/opt/findbugs-3.0.1
export PATH=$PATH:$FINDBUGS_HOME/bin
测试
[root@hadoop1 soft]# findbugs -version 3.0.1 [root@hadoop1 soft]#
安装ProtocolBuffer
编译要求:ProtocolBuffer 2.5.0
安装软件:protobuf-2.5.0.tar.gz,不建议用其它版本
[root@hadoop1 soft]# ls protobuf-2.5.0.tar.gz [root@hadoop1 soft]# chmod 755 protobuf-2.5.0.tar.gz [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
测试
[root@hadoop1 protobuf-2.5.0]# protoc --version libprotoc 2.5.0 [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的下载源
<mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> </mirrors>
安装Ant
[root@hadoop1 soft]# ls apache-ant-1.9.4-bin.tar.gz hadoop-2.7.5-src [root@hadoop1 soft]# tar -zxvf apache-ant-1.9.4-bin.tar.gz -C /opt/
配置环境变量
[root@hadoop1 apache-ant-1.9.4]# vi /etc/profile
#Ant export ANT_HOME=/opt/apache-ant-1.9.4 export PATH=$PATH:$ANT_HOME/bin
检测
[root@hadoop1 apache-ant-1.9.4]# ant -version Apache Ant(TM) version 1.9.4 compiled on April 29 2014 [root@hadoop1 apache-ant-1.9.4]#
安装Snappy
解压
[root@hadoop1 soft]# ls hadoop-2.7.5-src snappy-1.1.1.tar.gz [root@hadoop1 soft]# tar -zxvf snappy-1.1.1.tar.gz -C /opt/
安装
[root@hadoop1 soft]# cd /opt/snappy-1.1.1/ [root@hadoop1 snappy-1.1.1]# ./configure [root@hadoop1 snappy-1.1.1]# make [root@hadoop1 snappy-1.1.1]# make install
查看snappy文件库
[root@hadoop1 snappy-1.1.1]# ls -lh /usr/local/lib | grep snappy -rw-r--r-- 1 root root 228K 3月 3 09:51 libsnappy.a -rwxr-xr-x 1 root root 953 3月 3 09:51 libsnappy.la lrwxrwxrwx 1 root root 18 3月 3 09:51 libsnappy.so -> libsnappy.so.1.2.0 lrwxrwxrwx 1 root root 18 3月 3 09:51 libsnappy.so.1 -> libsnappy.so.1.2.0 -rwxr-xr-x 1 root root 145K 3月 3 09:51 libsnappy.so.1.2.0 [root@hadoop1 snappy-1.1.1]#
开始编译hadoop
[root@hadoop1 soft]# ls
[root@hadoop1 soft]# tar -zxvf hadoop-2.7.5-src.tar.gz
在编译之前防止java.lang.OutOfMemoryError:Java heap space堆栈问题,在centos系统中执行命令
[root@hadoop1 snappy-1.1.1]# export MAVEN_OPTS="-Xms256m -Xmx512m"
进入源码包下,执行命令进行编译
[root@hadoop1 snappy-1.1.1]# cd /soft/hadoop-2.7.5-src/ [root@hadoop1 hadoop-2.7.5-src]# mvn package -Pdist,native,docs -DskipTests -Dtar
如果中途编译失败,并且不要文档的话,请使用这个命令:
[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目录下,这是编译后文件夹的状态
至此,大功告成!!!