您的位置:首页 > 运维架构 > Linux

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

2014-05-07 18:46 483 查看
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的集群配置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: