1、前期准备工作
1.1、虚拟机centos7
配置 CentOS 能连接外网。Linux 虚拟机 ping www.baidu.com 是畅通的 注意:采用 root 角色编译,减少文件夹权限出现问题。
1.2、jar 包准备(hadoop 源码、JDK7 、 maven、 ant 、protobuf)
2、jar 包安装
注意:所有操作必须在 root 用户下完成。
2.1、JDK 解压、配置环境变量
tar -zxf jdk-7u79-linux-x64.gz -C /opt/module/
编辑vi /etc/profile 添加如下内容:
export JAVA_HOME=/opt/module/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
配置生效:source /etc/profile
验证命令:java -version
2.2、Maven 解压、配置
tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /opt/module/
编辑vi /etc/profile 添加如下内容:
#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.0.5
export PATH=$PATH:$MAVEN_HOME/bin
配置生效:source /etc/profile
验证命令:mvn -version
2.3、ant 解压、配置
tar -zxvf apache-ant-1.9.9-bin.tar.gz -C /opt/module/
编辑vi /etc/profile 添加如下内容:
#ANT_HOME
export ANT_HOME=/opt/module/apache-ant-1.9.9
export PATH=$PATH:$ANT_HOME/bin
配置生效:source /etc/profile
验证命令:ant -version
2.4、安装 glibc-headers 和 g++ 命令如下:
yum install glibc-headers
yum install gcc-c++
2.5、安装 make 和 cmake
yum install make
yum install cmake
2.6、解压 protobuf ,进入到解压后 protobuf 主目录,/opt/module/protobuf-2.5.0 然后相继执行命令:
tar -zxvf protobuf-2.5.0.tar.gz -C /opt/module/
cd /opt/module/protobuf-2.5.0/
./configure
make
make check
make install
ldconfig
编辑vi /etc/profile 添加如下内容:
#LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/module/protobuf-2.5.0
export PATH=$PATH:$LD_LIBRARY_PATH
配置生效:source /etc/profile
验证命令:protoc --version
2.7、安装 openssl 库
yum install openssl-devel
2.8、安装 ncurses-devel 库
yum install ncurses-devel
3、编译源码
31.、解压源码到/opt/ 目录
3.2、进入到 hadoop 源码主目录
3.3、通过 maven 执行编译命令
等待时间 30 分钟左右,最终成功是全部 SUCCESS。
3.4、成功的 64 位 hadoop 包在/opt/hadoop-2.7.2-src/hadoop-dist/target 下
4、常见的问题及解决方案
4.1、编译期间 maven 报错。可能网络阻塞问题导致依赖库下载不完整导致,多次执行命令 (一次通过比较难): [root@hadoop101 hadoop-2.7.2-src]#mvn package -Pdist,native -DskipTests -Dtar
4.2、MAVEN install 时候JVM内存溢出处理方式:在环境配置文件和maven的执行文件均可调整 MAVEN_OPT 的 heap 大小。
在构建大的项目时,需要大内存的支持,此时Maven可能会常常报内存溢出(OutOfMemory)的异常!解决的方法就是调整Java堆的大小。
找到文件%M2_HOME%\bin\mvn.bat,这就是启动Maven的脚本文件,找到该文件中以下代码所在的行:
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE...
它的意思是你可以设置一些Maven参数,我们就在该行下面加入以下行:
set MAVEN_OPTS= -Xms256m -Xmx512m