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的集群配置