先来无事想安装下hadoop-2.2.0,看看宣传中的许多新特性。再网上找教程的时候突然发现原来官方只有32位版本的。需要自己对源代码进行编译才能得到64位版本的。赶紧又去网上搜资料,忙活了一天终于编译成功了。
具体过程如下:
-
下载Hadoop2.2.0源代码包hadoop-2.2.0-src.tar.gz
-
安装相应的依赖包
yum -y install svn ncurses-devel gcc*
yum -y install lzo-devel zlib-devel autoconf automake libtool cmake openssl-devel
这些依赖包建议在linux系统联网的情况下安装 -
安装并配置java环境
(1)从官网下载java安装包
http://www.oracle.com/technetwork/java/javase/downloads/index.html(选择合适的版本,本文采用的是64位版本)
(2)配置java环境变量
通常是在root用户下修改/etc/下的profile文件,但是此改动会影响整个系统,所以我们采取第二种方法。在当前用户(本文是hadoop用户)下,ls -a,会发现有一个.bash_profile文件,这个文件是当前用户的配置文件,其配置只会在当前用户下生效。所以我们在此文件的末尾添加jdk的信息,如下:
export JAVA_HOME=/home/hadoop/Java/jdk1.7.0_51
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存退出,并执行source .bash_profile 命令即可。
(3)检查java环境
执行 java -version命令,即可看到安装java的版本。
-
安装maven工具
(1)下载地址:http://maven.apache.org/download.cgi
(2)将下载的工具包进行解压后,配置其环境变量
在.bahs_profile文件末尾添加如下内容:
export MAVEN_HOME=/home/hadoop/maven
export PATH=$PATH:$MAVEN_HOME/bin -
安装protobuf工具
(1)下载地址:http://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.5.0.tar.gz
(2)protobuf工具需要进行编译,按照如下步骤:
解压,设置属主为root chowd -R root.root protobuf-2.5.0
编译安装protobuf
①cd protobuf-2.5.0
②./configure
③make
④make install
(3)检查protobuf的安装情况
protoc --version
-
对hadoop2.2.0进行编译
(1)执行官方的clean步骤
mvn clean install –DskipTests(可能有一段时间)
执行成功后会出来好多列success提示!!
(2)执行编译
接下来执行hadoop的编译:
mvn package-Pdist,native -DskipTests -Dtar
等待一段时间后会提示已经安装完成,如图:
-
验证hadoop的编译情况
(1)检查编译结果
进入到hadoop源代码所在目录的/hadoop-dist/target 目录,里边会有编译好的hadoop2.2.0如图所示:
(2)对编译好的hadoop进行验证
1>进入到上步的hadoop2.2.0目录中,会看到里边的目录与官方32位的系统目录相同。
2>进入到bin目录中执行如下命令:
./hadoop version(列出hadoop的版本信息)
3>进入到hadoop-2.2.0目录中执行如下命令:
file lib//native/*
至此,Hadoop-2.2.0的编译工作完成