须要的工具:centos6.5 -64bitphp
jdk1.7.0.71 html
maven3.23 (http://mirrors.cnnic.cn/apache/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz)java
ant1.9 (http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz)linux
findbugs (http://cznic.dl.sourceforge.net/project/findbugs/findbugs/2.0.3/findbugs-2.0.3.tar.gz)c++
须要的软件:java, svn, autoconf, automake, libtool, ncurses-devel, openssl-devel, gcc, lzo-devel, zlib-devel, znt, maven, protobuf, cmakeapache
检测系统中是否已安装了某一软件命令:rpm -qa|grep 软件名,如检测系统中是否安装了svn:vim
$ rpm -qa|grep svncentos
若是已安装,则跳过,若是没有安装,用命令:yum install svn进行安装,如:
maven
$ yum install svnsvn
若是yum命令安装失败(找不到相应的包),则需手动下载相应的软件包进行安装,好比maven, protobuf这两个个软件;
接下须要首先去apach官网下载hadoop2.5.1源码包,并解压;以后安装jdk、maven、ant.详细步骤网上不少。
问题导读:
1.若是获取hadoop src maven包?
2.编译hadoop须要装哪些软件?
3.如何编译hadoop2.4?
扩展:
编译hadoop为什么安装这些软件?
protobuf的安装
为防止出错,这里补充一些内容,
先安装g++
sudo apt-get install g++
centos 下:yum install gcc-c++
下载 protobuf-2.5.0.tar.gz 网盘下载连接:http://pan.baidu.com/s/1dDgWe6P 密码:xgiu
解压 tar zxvf protobuf-2.5.0.tar.gz
$ sudo ./configure
$ sudo make
$ sudo make check
$ sudo make install
$ sudo ldconfig
若是系统中已经存在了低版本的protobuf,并被识别出来,则进行以下设置
修改环境变量:
vi /etc/profile
export LD_LIBRARY_PATH=~/protobuf-2.5.0
(LD_LIBRARY_PATH的这里,填写的是protobuf文件的位置)
source /etc/profile
注意:配置/etc/profile,在虚拟机重启后,可能配置会失效,因此重启后,须要再次执行source操做。
验证 protoc --version
.安装openssl库
sudo apt-get install libssl-dev / yum install openssl
CMake安装
sudo apt-get install cmake / sudo yum install cmake
安装findbugs(选择安装)
$ wget http://prdownloads.sourceforge.net/findbugs/findbugs-2.0.3.tar.gz?download $ sudo tar zxf findbugs-2.0.3.tar.gz -C /opt $ sudo vim /etc/profile export FINDBUGS_HOME=/opt/findbugs-2.0.3 export PATH=$PATH:$FINDBUGS_HOME/bin 验证: [root@hadoop001 bin]# fb -version 2.0.3
进入src包执行编译命令
mvn
package
-Pdist,
native
-DskipTests -Dtar
--不生成文档
生成文档的还未试验
使用-Pdocs选项能够生成文档,固然前提是安装了Forrest 和Findbugs 能够参考以下命令手动指定:FORREST_HOME和FINDBUGS_HOME.
mvn package -Pdocs -DskipTests -Dtar -Dmaven.test.skip -Denv.FORREST_HOME=/usr/local/apache-forrest -Denv.FINDBUGS_HOME=/usr/local/findbugs
生成的文档在各自的target/site目录下.
记录:
jdk1.8下编译会有处理注释标签的问题。相似于一下问题:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8.1:jar (module-javadocs) on project hadoop-annotations: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-common-project/hadoop-annotations/src/main/java/org/apache/hadoop/classification/InterfaceStability.java:27: error: unexpected end tag: </ul>
解决:更换为jdk1.7
[ERROR] around Ant part ...<exec dir="/home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-common-project/hadoop-common/target/native" executable="cmake" failonerror="true">... @ 4:141 in /home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-common-project/hadoop-common/target/antrun/build-main.xml
解决:
yum -y install zlib-devel
debian:apt-get install zlib1g-dev
yum -y install ncurses-devel
debian: apt-get install libncurses5-dev
[ERROR] around Ant part ...<exec dir="/home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-tools/hadoop-pipes/target/native" executable="cmake" failonerror="true">... @ 5:131 in /home/hadoop/Desktop/hadoop-2.5.1-src/hadoop-tools/hadoop-pipes/target/antrun/build-main.xml
解决
yum install openssl-devel