hadoop前戏配置三:hadoop 2.2.0 重新编译为64位,个人测试成功
资料来源于网络,经过个人测试,完美成功编译,特将教程贴在下面
将三份文章整合到一起,绝对可以编译
这个个人编译的hadoop-2.2.0-64bit.tar.gz
下载地址:http://baid.us/pRT8
个人推荐自行手动编译 可以弥补linux基础的不足
准备阶段
这部分看起来容易,但是收集这些依赖才是真正让人崩溃事。
经过一次次编译失败,翻遍了谷歌、百度之后终于凑齐了下面这些包。我想问:这是召唤神龙的节奏吗。
下面的服务器环境都基于Centos的,其它发行版Linux可能会有不同。
1.GCC、CMake、openssl、JDK,这几个没啥好说的,你懂的。
2.hadoop-2.2.0-src.tar.gz(http://hadoop.apache.org/releases.html#Download)
3.apache-ant-1.9.2-bin.tar.gz(http://ant.apache.org/bindownload.cgi)
4.apache-maven-3.0.5-bin.tar.gz(http://maven.apache.org/download.cgi)
注意:此处最新的3.1.1版有Bug,缺少依赖包。详细说明如下所示:
https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound
5.findbugs-2.0.2.tar.gz(http://sourceforge.jp/projects/sfnet_findbugs/releases/)
注意:sourceforge.com被墙,只能进sourceforge.jp,这TMD什么世道?
6.protobuf-2.5.0.tar.gz(https://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 > |