下载源代码:
wget http://mirror.esocc.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz
然后解压:
tar zxvf hadoop-2.2.0-src.tar.gz
cd hadoop-2.2.0-src
运行下面的命令开始编译:
~/code/hadoop-2.2.0-src$ mvn package -Pdist,native -DskipTests -Dtar
下载了很多maven的东东后,编译报错:
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/hduser/code/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[88,11] error: cannot access AbstractLifeCycle
[ERROR] class file for org.mortbay.component.AbstractLifeCycle not found
/home/hduser/code/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/src/test/java/org/apache/hadoop/security/authentication/client/AuthenticatorTestCase.java:[96,29] error: cannot access LifeCycle
[ERROR] class file for org.mortbay.component.LifeCycle not found
编辑hadoop-common-project/hadoop-auth/pom.xml文件,添加依赖:
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
再次编译,这个错误解决了。 注意,2.3.0之后不需要修改pom.xml,这个问题已经解决。
之后遇到了没有安装protocol buffer库的错误,安装一下:
[INFO] --- hadoop-maven-plugins:2.2.0:protoc (compile-protoc) @ hadoop-common ---
[W