64位Oracle Linux下重新编译Hadoop-2.2.0
操作系统Oracle Linux 5.8 64bit
1.yum光盘源设置
vi /etc/yum.repos.d/rhel-debuginfo.repo
[base]
name=Server Local Sources
baseurl=file:///media/Server
enabled=1
gpcheck=1
gpgkey=file:///media/RPM-GPG-KEY-oracle
------------------------------------------------------------
懒得再编译的朋友可以直接在这里下载我编译好的
百度网盘免费下载地址:http://pan.baidu.com/s/1gdoVBA7
或者
------------------------------------------------------------
2.因为是最小化安装的系统,需要安装如下软件包
[root@hadoop1 ~]# yum install lzo-devel zlib-devel gcc autoconf automake libtool ncurses-devel openssl-deve
3.安装maven
根据网上查得,最新的maven3.1.1与hadoop2.2.0有兼容性问题,这里用maven3.0.5
[root@hadoop1 ~]# wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.tar.gz
因为下载的是已经编译好的,所以直接解压就可以了
[root@hadoop1 ~]# tar zxvf apache-maven-3.0.5-bin.tar.gz -C /usr/local/
[root@hadoop1 ~]# mv /usr/local/apache-maven-3.0.5/ /usr/local/maven
设置环境变量
[root@hadoop1 local]# vi /etc/profile
添加以下内容
export MAVEN_HOME=/usr/local/maven
4.安装ant
[root@hadoop1 ~]# wget http://mirror.esocc.com/apache//ant/binaries/apache-ant-1.9.3-bin.tar.gz
[root@hadoop1 ~]# tar zxvf apache-ant-1.9.3-bin.tar.gz -C /usr/local/
[root@hadoop1 ~]# mv /usr/local/apache-ant-1.9.3/ /usr/local/ant
[root@hadoop1 ~]# vi /etc/profile
export ANT_HOME=/usr/local/ant
5.安装findbugs
[root@hadoop1 ~]# wget http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3.tar.gz?download
[root@hadoop1 ~]# tar zxvf findbugs-2.0.3.tar.gz -C /usr/local/
[root@hadoop1 ~]# mv /usr/local/findbugs-2.0.3/ /usr/local/findbugs
[root@hadoop1 ~]# vi /etc/profile
export FINDBUGS_HOME=/usr/local/findbugs
6.安装protobuf
[root@hadoop1 ~]# wget https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz
[root@hadoop1 ~]# tar zxvf protobuf-2.5.0.tar.gz
[root@hadoop1 ~]# cd protobuf-2.5.0
[root@hadoop1 protobuf-2.5.0]# ./configure
这里报了一个错:
configure: error: in `/root/protobuf-2.5.0':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
是c++的编译器没有安装
[root@hadoop1 protobuf-2.5.0]# yum install gcc-c++
然后重新编译protobuf并安装
[root@hadoop1 protobuf-2.5.0]# ./configure
[root@hadoop1 protobuf-2.5.0]# make
[root@hadoop1 protobuf-2.5.0]# make install
7.把上面的几个软件加到PATH变量里
[root@hadoop1 ~]# vi /etc/profile
export PATH=$PATH:$MAVEN_HOME/bin:$ANT_HOME/bin:$FINDBUGS_HOME/bin
运行profile使得这些配置生效
[root@hadoop1 ~]# source /etc/profile
8.编译hadoop
[root@hadoop1 ~]# wget http://mirror.esocc.com/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0-src.tar.gz
[root@hadoop1 ~]# tar zxvf hadoop-2.2.0-src.tar.gz
这里网上查得hadoop2.2.0的源码包里面还有一个bug:
https://issues.apache.org/jira/browse/HADOOP-10110
根据HADOOP-10110.patch,做如下修改:
[root@hadoop1 hadoop-2.2.0-src]# vi hadoop-common-project/hadoop-auth/pom.xml
</dependency>
<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>
然后就开始编译hadoop了
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar
没想到编译过程也是需要配JAVA_HOME的
[root@hadoop1 hadoop-2.2.0-src]# export JAVA_HOME=/home/hadoop/jdk
[root@hadoop1 hadoop-2.2.0-src]# export PATH=$PATH:$JAVA_HOME/bin
再重新来
[root@hadoop1 hadoop-2.2.0-src]# mvn package -DskipTests -Pdist,native -Dtar
之后就是漫长的等待了。这里还有一个要注意的是这个过程里面它会自己到网上下载很多东西的,可别把网断了。
--------------------------------------分割线 --------------------------------------
--------------------------------------分割线 --------------------------------------