CentOS编译Hadoop 2.2.0 Pass 总结

本文总结了在CentOS系统中编译Hadoop 2.2.0时遇到的问题及解决方案,包括选择特定版本的Maven以避免兼容性错误,解决源代码中的bug,安装必要的依赖包,配置环境变量,以及编译步骤。通过这些步骤,可以成功编译并创建Hadoop的打包文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 不要使用最新的 Maven3.1.1,与Maven3.0.x存在兼容性问题,所以老是出现java.lang.NoClassDefFoundError: org/sonatype/aether/graph/DependencyFilter之类的错误。

我选择环境如下:

Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf9602da; 2013-02-19 21:51:28+0800)
Maven home: /app/hadoop/apache-maven-3.0.5
Java version: 1.7.0_45, vendor: Oracle Corporation
Java home: /app/hadoop/jdk1.7.0_45/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "2.6.32-358.23.2.el6.x86_64", arch: "amd64", family: "unix"


2.  最新的2.2.0 的Source Code 压缩包解压出来的code有个bug 需要patch后才能编译。否则编译hadoop-auth 会提示下面错误:

[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

Patch :https://issues.apache.org/jira/browse/HADOOP-10110


3. 安装下面安装包:

 lzo-devel  zlib-devel  gcc autoconf automake libtool   ncurses-devel openssl-devel


4. 安装下面程序

 Ant     Maven     ProtocolBuffer     findbugs      CMake


5. /etc/profile 修改如下:

export JAVA_HOME=/app/hadoop/jdk1.7.0_45
export CLASSPATH=.:${JAVA_HOME}/lib/:${JAVA_HOME}/jre/lib/
export ANT_HOME=/app/hadoop/apache-ant-1.9.2
export MAVEN_HOME=/app/hadoop/apache-maven-3.0.5
export FINDBUGS_HOME=/app/hadoop/findbugs-2.0.3-rc1

export PATH=${JAVA_HOME}/bin:${JAVA_HOME}/jre/bin:${ANT_HOME}/bin:${MAVEN_HOME}/bin:${FINDBUGS_HOME}/bin:$PATH

5. build hadoop 包:

mvn package -DskipTests -Pdist,native,docs -Dtar


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值