[ Linux 下 Hadoop 编译]CentOS6.4_64位下编译Hadoop2.2.0

0、前言

在配置Cygwin无果后,终于专向Linux环境,本文是参照http://blog.csdn.net/w13770269691/article/details/16883663 ,

通过过自行实践加总结,写出本文。其实很多人都不建议在Cygwin下进行Hadoop配置,毕竟不是真正的Linux,总会让你遇到各种各样的非主流问题,却又难以解决。

下面进入安装过程描述。

前人的指引不一定会让你成功,但是一定对你有帮助!

1、安装JDK
我这里用的CentOS6.4_64位虚拟机(KVM虚拟化),要下载对应的64位的JDK,下载地址:
http://www.oracle.com/technetwork/cn/java/javase/downloads/jdk7-downloads-1880260-zhs.html 
选择对应于你操作系统的JDK版本,解压JDK,因为我不太想安装rpm包,所以我选择tar.gz
接下来配置环境变量(我配置的是全局的):
1)vim /etc/profile
2)在文件最后追加:
export PATH 
export JAVA_HOME=/opt/jdk1.7 
export PATH=$PATH:$JAVA_HOME/bin
3)使环境变量生效:source /etc/profile
4)验证jdk是否配置成功: java -version (出现版本信息表示配置成功)

2、编译前的准备(maven)
1)下载maven

看到网上有这种说法:


但我确实使用的3.1.1版本,目前来看好像没有什么问题,maven官方下载地址:

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.1.1/binaries/apache-maven-3.1.1-bin.zip

2)解压文件后,同样在/etc/profie里配置环境变量

exportMAVEN_HOME=/opt/maven3.1.1

exportPATH=$PATH:$MAVEN_HOME/bin

3)使环境变量生效:

source /etc/profile

4)验证配置是否成功(出现版本信息表示成功):

mvn -version



3、编译前的准备(安装protoc)
hadoop2.2.0编译需要protoc2.5.0的支持,所以还要下载protoc。
对protoc进行编译安装前先要装几个依赖包:gcc,gcc-c++,make,
由于下面编译Hadoop需要:cmake,openssl-devel,ncurses-deve,此处一起安装好了。
安装方法:直接yum install即可,如安装 gcc: 使用 yum install gcc 即可。
1)下载protoc
下载地址:https://code.google.com/p/protobuf/downloads/list


2)解压安装protoc,执行以下几步:
tar -xvf protobuf-2.5.0.tar.bz2
cd protobuf-2.5.0
./configure
make
make install


3)验证是否安装成功(出现版本号表示安装成功了)
[root@localhost hadoop-2.2.0]# protoc --version
libprotoc 2.5.0



4、编译hadoop
Hadoop为什么要编译?因为官网提供的编译好的程序,是32位版本的,然而现在还有多少人在用32位的Linux呢?
确实有点坑,看到别人说各种各样的报错,只好选择自行编译了。下面进入安装步骤:
1)下载源代码
wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz
2)配置mvn
由于maven国外服务器可能连不上,先给maven配置一下国内镜像,进入maven安装目录,
打开conf/settings.xml文件,

在<mirrors></mirros>节点里添加:

<mirror>
  <id>nexus-osc</id>
  <mirrorOf>*</mirrorOf>
  <name>Nexusosc</name>
  <url>http://maven.oschina.net/content/groups/public/</url>
</mirror> 

在<profiles></profiles>节点内添加:

<profile>  
<id>jdk-1.7</id>  
<activation>  
<jdk>1.7</jdk>  
</activation>  
<repositories>  
<repository>  
<id>nexus</id>  
<name>local private nexus</name>  
<url>http://maven.oschina.net/content/groups/public/</url>  
<releases>  
<enabled>true</enabled>  
</releases>  
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>  

3) Hadoop 2.2.0需要打patch,Patch :https://issues.apache.org/jira/browse/HADOOP-10110

其实也就是在\hadoop-common-project\hadoop-auth\pom.xml这个文件的56行后面,
需要添加一段代码而已。代码如下:

<dependency>
  <groupId>org.mortbay.jetty</groupId>
  <artifactId>jetty-util</artifactId>
  <scope>test</scope>
</dependency>

4)clean
进入Hadoop安装目录执行:
mvn clean
(第一次编译可以不用执行clean,当时我这一步mvn出错,
参考文章:http://www.javaxxz.com/thread-66406-1-1.html)
5) build hadoop包:
mvn package -DskipTests -Pdist,native,docs -Dtar
不出意外应该是编译成功了:

6)验证
进入hadoop-2.2.0-src/hadoop-dist/target/hadoop-2.2.0
a. cd bin执行 ./hadoop version 可以看到:


b. 执行file lib//native/*可以看到:


至此,Hadoop编译完成,下面进入集群部署。
下篇:Hadoop的集群配置

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值