hadoop2.x的编译过程总结

所有编译过程都可以在说明xml中得到有关信息,要进行编译的目的是,hadoop2.x中的lib包是32位的,而我们实际学习和生产的机器大都是64位,这使得我们要重新进行编译。

1.准备工作

a) hadoop2.x的源码包,这里以hadoop-2.4.1-src.tar.gz为例。
b) apache-maven-3.0.5-bin.tar.gz
c) findbugs-1.3.9.tar.gz
d) protobuf-2.5.0.tar.gz
e) jdk-7u67-linux-x64.tar.gz

通过查看hadoop-2.4.1-src包下的BUILDING.txt文件,可以看到编译有关的详细说明,下面我摘出重点部分一起解读下:
列出的是编译Hadoop所需要的前提准备环境
Build instructions for Hadoop(Hadoop编译说明书)

Requirements:

  • Unix System
  • JDK 1.6+
  • 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)
  • Internet connection for first build (to fetch all Maven and Hadoop dependencies)

2.开始安装编译环境

 2.1编译前安装依赖包:
安装Linux系统包(需连接internet)
a) yum install autoconf automake libtool cmake
b) yum install ncurses-devel
c) yum install openssl-devel
d) yum install lzo-devel zlib-devel gcc gcc-c++

2.2解压步骤1中的所有源码包,在编译hadoop2.x时,需要安装编译环境。
a) JDK编译环境安装
将jdk-7u67-linux-x64.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
    `export JAVA_HOME=/usr/java/jdk1.7.0_67
     export PATH=$PATH:$JAVA_HOME/bin`

b) MAVEN环境安装
将apache-maven-3.0.5-bin.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
    `export MAVEN_HOME=/home/elon/opt/modules/apache-maven-3.0.5
     export PATH=$PATH:$MAVEN_HOME/bin`


c) FINDBUGS环境安装
将findbugs-1.3.9.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
    `export FINDBUGS_HOME=/home/elon/opt/modules/findbugs-1.3.9
     export PATH=$PATH:$FINDBUGS_HOME/bin`


d) PROTOBUF环境安装
将protobuf-2.5.0.tar.gz 解压至文件夹中,并用root用户配置/etc/profile,添加
    `export PROTOBUF_HOME=/home/elon/opt/modules/protobuf-2.5.0`
进入安装目录,进行配置,执行命令:
    ./configure
安装命令:
    make
    make check
    make install

3.编译源码

通过查阅BUILDING.txt,获知编译命令:

Create binary distribution with native code without documentation:
(在本地创建二进制发行版,并携带本地代码以及不包括文档,当机器是64bit时,编译出来的本地库就是适用于64bit机的)
  $ mvn package -Pdist,native -DskipTests -Dtar
0%