hadoop2.x是使用maven构建的,所以首先下载maven
1、下载maven maven.apache.org
我选择的是apache-maven-3.0.5(貌似3.1不行)
解压缩: tar -zxvf apache-maven-3.0.5
配置环境变量:vim /etc/profile
MAVEN_HOME=/home/colin/apache-maven-3.0.5
PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
测试:mvn -version
出现以下说明成功
2、安装findbugs(可选)
用于生成文档,下载地址http://sourceforge.jp/projects/sfnet_findbugs/releases/,我选择的是 findbugs-3.0.0.tar.gz
解压缩:tar zxvf findbugs-3.0.0.tat.gz
配置环境变量:vim /etc/profile
FINDBUGS_HOME=/home/colin/software/findbugs-3.0.0
PATH=$PATH:$FINDBUGS_HOME/bin
source /etc/profile
测试 findbugs -version出现版本号,说明成功
3、安装protocol buffer,由于已经被墙可以到这里下载http://pan.baidu.com/s/1pJlZubT
使用protocol buffer是进行通信的
解压缩:tar -zxvf protobuf-2.5.0.tat.gz
安装依赖的工具:
gcc
gcc-c++
make
我在ubuntu上安装gcc-c++是安装apt-get install build-essential
安装开始编译
cd protobuf-2.5.0
./configure --prefix=/home/colin/software/protoc/
如果不能成功则:
./configure --build=arm-linux --prefilx=/home/colin/software/protoc/
make && make install
这时候可能会报一些错误,不要管他能用
这时候便以后的文件位于/home/colin/software/protoc/下,开始配置环境变量
vim /etc/profile
PROTOC_HOME=/home/colin/software/protoc
PATH=$PATH:PROTOC_HOME/bin
使生效source /etc/profile
测试protoc --version
出现libprotoc 2.5.0,则说明成功
4、安装其他依赖包
cmake
openssl-devel
ncurses-devel
以上这三个是在centos或者redhat先需要安装的
ubuntu下openssl-devel对应着:
openssl
libssl-dev
ncurses-devel对应着
libncurses5-dev
5、下载hadoop-2.2.0-src.tar.gz
https://archive.apache.org/dist/hadoop/common/hadoop-2.2.0/
解压缩 tar -zxvf hadoop-2.2.0-src.tar.gz
在解压缩之后的目录下需要修改一个bug
vim hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml
在第55行添加:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
6、开始编译
在hadoop-2.2.0-src/下执行
mvn package -DskipTests -Pdist,native,docs
然后就开始等待吧,自动下载依赖的jar包,如果没有安装findbugs则把docs去掉
最终出现一下内容说明编译成功:
最终编译之后的源码在hadoop-2.2.0-src/hadoop-dist/target目录下hadoop-2.2.0