一、安装准备
1.1 安装protobuf
下载 http://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
编译安装protobuf前,需要先安装gcc、gcc-c++、make等编译所必须的工具,编译安装过程如下:
[root@hdnode01 ~]# tar xf protobuf-2.5.0.tar.gz
[root@hdnode01 ~]# cd protobuf-2.5.0
[root@hdnode01 protobuf-2.5.0]# ./configure --prefix=/usr/local/protobuf
[root@hdnode01 protobuf-2.5.0]# make –j4
[root@hdnode01 protobuf-2.5.0]# make install
便完成后,还需添加库文件和可执行文件路径:
[root@hdnode01 protobuf-2.5.0]# vi /etc/ld.so.conf ##添加如下一行
include /usr/local/protobuf/lib
修改 /etc/profile ,添加如下一行:
export PATH=/usr/local/protobuf/bin:$PATH
重新登录后验证是否安装正确:
[root@hdnode01 ~]# protoc --version
libprotoc 2.5.0
1.2 安装maven
maven的编译容易出错,所以最简单的办法是直接使用通用二进制文件:
下载:http://mirrors.cnnic.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.tar.gz
安装:
[root@hdnode01 ~]# tar xf apache-maven-3.1.1-bin.tar.gz
[root@hdnode01 ~]# mv apache-maven-3.1.1 /usr/local/
修改 /etc/profile ,添加如下一行:
export PATH=/usr/local/apache-maven-3.1.1/bin:$PATH
1.3 其他编译所需rpm包:
[root@hdnode01 ~]# yum -y install lzo-devel zlib-devel gcc autoconf automake libtool ncurses-devel openssl-devel
二、编译hadoop 2.2.0
2.1 下载源码:
[root@hdnode01 ~]# wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz
[root@hdnode01 ~]# tar -xf hadoop-2.2.0-src.tar.gz
2.2 编译:
[root@hdnode01 ~]# cd hadoop-2.2.0-src
[root@hdnode01 hadoop-2.2.0-src]# mvn package -Pdist,native -DskipTests –Dtarcd
过程很长,需要在线下载很多相关资源,耐心等待。我只遇到了下面两个问题,如果遇到其他问题,请网上搜索处理即可。
编译完成后,hadoop-dist/target/目录下生成有hadoop-2.2.0-tar.gz文件,这个就是我们要的东东,后继安装配置,参照前文:hadoop的安装 即可。
2.3 问题处理:
问题1:
提示如下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile) on project hadoop-auth: Compilation failure: Compilation failure:
[ERROR] /home/chuan/trunk/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[84,13] cannot access org.mortbay.component.AbstractLifeCycle
[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found
参考官方说明:https://issues.apache.org/jira/browse/HADOOP-10110
解决办法,修改hadoop-common-project/hadoop-auth/pom.xml,添加如下10行:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<scope>test</scope>
</dependency>
问题2:
提示如下错误:
[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:2.2.0:protoc (compile-protoc) on project hadoop-common: org.apache.maven.plugin.MojoExecutionException: ‘protoc –version’ did not return a version -> [Help 1]
检查protobuf安装是否正确,参考1.1部分。