hadoop源码编译方法,以及编译问题总结

来源:互联网 发布:acm编程规则 编辑:程序博客网 时间:2024/06/09 23:29

一、编译所需的一些软件

1.jdk1.7
2.maven 3.3.9
3.findbugs 3.0.1
4.protocolBuffer 2.5.0
5.cmake 2.6
6.zlib-devel
7.openssl-devel
8.gcc-c++
9.autoconf
10.automake
11.hadoop-2.7.3-src.tar.gz

二、编译hadoop源码步骤

首先需要在虚拟机上安装以下软件

**1.安装jdk并配置环境变量**

下载JDK安装包
版本为1.7.0_79,将其放入/usr/lib/jvm/ 目录下(创建jvm文件夹 mkdir jvm),
Ldd-1

[root@ldd-1 ~]# cd /usr/lib/jvm/[root@ldd-1 jvm]# ls    jdk-7u79-linux-x64.tar.gz

解压

[root@ldd-1 jvm]# tar -zxvf  jdk-7u79-linux-x64.tar.gz

配置环境变量
Ldd-1

[root@ldd-1 ~]# vi /etc/profile.d/jdk.sh    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_79    export JRE_HOME=//usr/lib/jvm/jdk1.7.0_79/jre    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

生效环境变量
Ldd-1

[root@ldd-1 ~]# source /etc/profile

检查是否安装成功

java -version
**2.安装maven并配置环境变量**

下载maven安装包
版本为3.3.9,将其放入/usr/lib/soft/ 目录下(创建soft文件夹 mkdir soft),
Ldd-1

[root@ldd-1 ~]# cd /usr/lib/soft/[root@ldd-1 soft]# ls    apache-maven-3.3.9-bin.tar.gz

解压

[root@ldd-1 soft]# tar -zxvf  apache-maven-3.3.9-bin.tar.gz

配置maven环境变量

[root@ldd-1 ~]# vi /etc/profile

在profile文件中添加

    export MAVEN_HOME=/usr/lib/soft/apache-maven-3.3.9    export PATH=.:$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

生效环境变量
Ldd-1

[root@ldd-1 ~]# source /etc/profile

检查是否安装成功

mvn -version
**3.安装依赖库**
[root@ldd-1 ~]# yum -y install svn ncurses-devel gcc*[root@ldd-1 ~]# yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel
**4.安装protocolBuffer**

下载protocolBuffer安装包
版本为2.5.0,将其放入/usr/lib/soft/ 目录下(创建soft文件夹 mkdir soft),
Ldd-1

[root@ldd-1 ~]# cd /usr/lib/soft/[root@ldd-1 soft]# ls    protobuf-2.5.0.tar.gz

解压

[root@ldd-1 soft]# tar -zxvf  protobuf-2.5.0.tar.gz

配置环境变量
Ldd-1

[root@ldd-1 ~]# cd /usr/lib/soft/protobuf-2.5.0[root@ldd-1 protobuf-2.5.0]# ./configure[root@ldd-1 protobuf-2.5.0]# make[root@ldd-1 protobuf-2.5.0]# make install

检查是否安装成功

[root@ldd-1 ~]# protoc --version    libprotoc 2.5.0
**5.安装findbugs并配置环境变量**

下载findbugs安装包
版本为3.0.1,将其放入/usr/lib/soft/ 目录下,
Ldd-1

[root@ldd-1 ~]# cd /usr/lib/soft/[root@ldd-1 soft]# ls    findbugs-3.0.1.tar.gz

解压

[root@ldd-1 soft]# tar -zxvf  findbugs-3.0.1.tar.gz

配置环境变量
Ldd-1

[root@ldd-1 ~]# vi /etc/profile

在profile文件末尾追加

    export  FINDBUGS_HOME=/usr/lib/soft/findbugs-3.0.1    export  PATH=$PATH:$FINDBUGS_HOME/bin
[root@ldd-1 ~]# source /etc/profile[root@ldd-1 ~]# findbugs -version
**6.编译Hadoop**

下载hadoop安装包,版本为2.7.3,将其放入/usr/lib/soft/ 目录下,
Ldd-1

[root@ldd-1 ~]# cd /usr/lib/soft/[root@ldd-1 soft]# ls    hadoop-2.7.3-src.tar.gz

解压

[root@ldd-1 soft]# tar -zxvf  hadoop-2.7.3-src.tar.gz

进入源码目录执行编译

[root@ldd-1 soft]# cd hadoop-2.7.3-src [root@ldd-1 hadoop-2.7.3-src]# mvn clean package -Pdist,native -DskipTests -Dtar 

参考教程
http://blog.csdn.net/young_kim1/article/details/50269501
http://blog.csdn.net/linlinv3/article/details/49358217

二、编译问题总结

1.错误描述: Failed to find a viable JVM installation under JAVA_HOME
这里写图片描述

这里写图片描述

【解决方法】
进入到hadoop-2.7.3-src目录下的src目录

cd /soft-cy/hadoop-2.7.3-src/hadoop-common-project/hadoop-common/src

这里写图片描述
编辑JNIFlags.cmake文件

vim JNIFlags.camke

在文件中添加以下代码(图中红色圈出的部分)

 ELSEIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^sw_64")        SET(_java_libarch "sw")

这里写图片描述

上图中配置的“sw”的路径:/usr/lib/jvm/java-1.7.0-swjdk-H2586P.sw_64/jre/lib
这里写图片描述

原创粉丝点击