hadoop前戏配置三:hadoop 2.2.0 重新编译为64位,个人测试成功

资料来源于网络,经过个人测试,完美成功编译,特将教程贴在下面

将三份文章整合到一起,绝对可以编译

这个个人编译的hadoop-2.2.0-64bit.tar.gz 

下载地址:http://baid.us/pRT8 

个人推荐自行手动编译 可以弥补linux基础的不足

准备阶段

这部分看起来容易,但是收集这些依赖才是真正让人崩溃事。

经过一次次编译失败,翻遍了谷歌、百度之后终于凑齐了下面这些包。我想问:这是召唤神龙的节奏吗。

下面的服务器环境都基于Centos的,其它发行版Linux可能会有不同。
1.GCC
CMakeopensslJDK,这几个没啥好说的,你懂的。

2.hadoop-2.2.0-src.tar.gzhttp://hadoop.apache.org/releases.html#Download

3.apache-ant-1.9.2-bin.tar.gzhttp://ant.apache.org/bindownload.cgi

4.apache-maven-3.0.5-bin.tar.gzhttp://maven.apache.org/download.cgi

注意:此处最新的3.1.1版有Bug,缺少依赖包。详细说明如下所示:
https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound

5.findbugs-2.0.2.tar.gzhttp://sourceforge.jp/projects/sfnet_findbugs/releases/
注意:sourceforge.com被墙,只能进sourceforge.jp,这TMD什么世道?

6.protobuf-2.5.0.tar.gzhttps://code.google.com/p/protobuf/downloads/list

7.zlib-devel-1.2.3-3.x86_64.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/8192688/dir/startcom_5/com/zlib-devel-1.2.3-3.x86_64.rpm.html

hadoop2.x发布稳定版本后估计许多像我这样的hadoop迷都按耐不住跃跃欲试,但是很不幸的是hadoop2.2.0暂时不支持64位。这个问题在网上已经讨论的很多了官方也明确了。废话不多说,要想解决就是在64位平台下重新编译版本。

OS:CENTOS 64bit

1.安装jdk

参见http://www.cnblogs.com/limpoo/p/3520455.html

或者按照以下步骤安装:

下载jdk:jdk-7u21-linux-x64.tar.gz

解压jdk:tar -xvf jdk-7u21-linux-x64.tar.gz -C .

配置java_home:

vi /etc/profile,在文件最后添加以下内容:

export JAVA_HOME=/dx/jdk1.7.0_21

export CLASSPATH=.$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

 

使配置文件生效:source /etc/profile

 

验证:java -version

 

=====================================================

2.安装maven

下载maven

wget http://mirror.bit.edu.cn/apache/ ... en-3.1.1-bin.tar.gz

解压maven:tar -xvf apache-maven-3.1.1-bin.tar.gz -C .

配置maven_home

vi /etc/profile,在文件最后添加以下内容:

export MAVEN_HOME=/dx/apache-maven-3.1.1

export PATH=$PATH:$MAVEN_HOME/bin

 

使配置文件生效:source /etc/profile

 

验证:mvn -version

修改

   <mirror>

        <id>nexus-osc</id>

         <mirrorOf>*</mirrorOf>

     <name>Nexusosc</name>

     <url>http://maven.oschina.net/content/groups/public/</url>

   </mirror>

 

======================================================

3.下载hadoop2.x源码

wget http://mirrors.cnnic.cn/apache/h ... op-2.2.0-src.tar.gz

 

======================================================

4.安装protobuf依赖包

yum install gcc

yum intall gcc-c++

yum install make

 

======================================================

5.下载protobuf-2.5.0.tar.bz2

wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.bz2

编译安装 protobuf

 

tar -xvf protobuf-2.5.0.tar.bz2

cd protobuf-2.5.0

./configure --prefix=/opt/protoc/  --protobuf 安装至/opt/protoc

make

make install

 

配置环境变量:

export PROTOC_HOME=/opt/protoc

export PATH=$PATH:$PROTOC_HOME/bin

 

 

使配置文件生效:source /etc/profile

验证: protoc --version

======================================================

6.安装编译依赖

yum install cmake

yum install openssl-devel

yum install ncurses-devel

 

======================================================

7.编译hadoop2.x

cd hadoop-2.2.0-src下执行:

 

mvn package -Pdist,native -DskipTests -Dtar

常见问题

1) error: cannot access AbstractLifeCycle

在编译的过程中出现/home/killua/Workspace/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错误

经过查证发现是hadoop2.2.0的一个bug,具体参见https://issues.apache.org/jira/browse/HADOOP-10110 

解决方法:

修改hadoop-2.2.0-src/hadoop-common-project/hadoop-auth/pom.xml,将

1
2
3
4
5
<dependency>
   <groupId>org.mortbay.jetty</groupId>
   <artifactId>jetty</artifactId>
   <scope>test</scope>
</dependency>

修为

 
1
2
3
4
5
6
7
8
9
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>

 

 

posted @ 2014-01-15 14:26  微风夜明  阅读(461)  评论(0编辑  收藏  举报