本文吸取了网上大牛吴老师的编译经验。按照他的总结并亲自实践,做了几次,终于把源码编译好了。原来是内存分配小了。
安装步聚整理:
1.安装CentOS
在VMWare虚拟机,安装CentOS6.5版本, 内存 分配2GB, 磁盘空间 分配2 0GB。内存太小,会比较慢;磁盘太小,编译时可能会出现空间不足的情况。注意 一定要保持linux联网状态。(前面三次按装,两次是因为联网问题,安装失败,最后一次按装失败是因为内存分配过小)
centos6.5下载地址: http://mirror.neu.edu.cn/centos/6.5/isos/x86_64/ ,选择 CentOS-6.5-x86_64-bin-DVD1.iso 下载
2.安装JDK
从oracle官网下载jdk,下载地址是 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ,选择 jdk-7u45-linux-x64.tar.gz下载。
执行以下命令:
tar -zxvf jdk-7u45-linux-x64.tar.gz
vi /etc/profile
加入以下内容:
export JAVA_HOME =/usr/local/jdk1.7.0_45
export PATH=.:$ JAVA_HOME /bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
java -version
3.安装maven
从maven官网下载,下载地址是 http://maven.apache.org/download.cgi ,选择 apache-maven-3.0.5-bin.tar.gz 下载,不要选择3.1下载。
执行以下命令:
tar -zxvf apache-maven-3.0.5-bin.tar.gz
vi /etc/profile
修改内容如下:
export MAVEN _HOME =/usr/local/ apache-maven-3.0.5
export JAVA_HOME =/usr/local/jdk1.7.0_45
export PATH=.:$ MAVEN _HOME /bin :$ JAVA_HOME /bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
mvn -version
4.安装findbugs(可选步骤)
从findbugs官网下载findbugs,下载地址是 http://sourceforge.jp/projects/sfnet_findbugs/releases/ ,选择findbugs-3.0.0-dev-20131204-e3cbbd5.tar.gz下载。
执行以下命令:
tar -zxvf findbugs-3.0.0-dev-20131204-e3cbbd5.tar.gz
vi /etc/profile
修改内容如下:
export FINDBUGS_HOME=/usr/local/ findbugs-3.0.0-dev-20131204-e3cbbd5
export MAVEN_HOME=/usr/local/ apache-maven-3.0.5
export JAVA_HOME =/usr/local/jdk1.7.0_45
export PATH=.:$ FINDBUGS_HOME /bin :$ MAVEN _HOME /bin :$ JAVA_HOME /bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
findbugs -version
5.安装protoc
从protoc官网下载protoc,下载地址是 https://code.google.com/p/protobuf/downloads/list ,选择protobuf-2.5.0.tar.gz 下载。
为了编译安装protoc,需要下载几个工具,顺序执行以下命令
yum install gcc
yum intall gcc-c++
yum install make
如果操作系统是CentOS6.5那么gcc和make已经安装了。其他版本不一定。在命令运行时,需要用户经常输入“y”。
执行以下命令:
tar -zxvf protobuf-2.5.0.tar.gz
会生成一个文件夹protobuf-2.5.0,执行以下命令编译protobuf
cd protobuf-2.5.0
./configure --prefix=/usr/local/protoc/
make && make install
vi /etc/profile
修改内容如下:
export FINDBUGS_HOME=/usr/local/ findbugs-3.0.0-dev-20131204-e3cbbd5
export MAVEN_HOME=/usr/local/ apache-maven-3.0.5
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=.:/usr/local/protoc/bin:$ FINDBUGS_HOME /bin :$ MAVEN _HOME /bin :$JAVA_HOME/bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
protoc --version
6.安装其他依赖
顺序执行以下命令
yum install cmake
yum install openssl-devel
yum install ncurses-devel
安装完毕即可。
7.编译hadoop2.2源码
从hadoop官网下载2.2稳定版,下载地址是 http://apache.fayea.com/apache-mirror/hadoop/common/stable2/ ,下载hadoop-2.2.0-src.tar.gz 下载。
会生成一个文件夹 hadoop-2.2.0-src。源代码中有个bug,这里需要修改一下,编辑目录/usr/local/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth中的文件pom.xml,执行以下命令
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
保存退出即可。
最后执行如下命令:
cd /usr/local/hadoop-2.2.0-src
mvn package -DskipTests -Pdist,native,docs
大概1个多钟头后,如果看到以下图中红色圈起部分,说明编译成功
编译后的代码在/usr/local/hadoop-2.2.0-src/hadoop-dist/target下面
可以执行如下命令查看
cd /usr/local/hadoop-2.2.0-src/hadoop-dist/target
ls
可以看到如下文件目录结构,说明已经把hadoop2.2编译好了
安装步聚整理:
1.安装CentOS
在VMWare虚拟机,安装CentOS6.5版本, 内存 分配2GB, 磁盘空间 分配2 0GB。内存太小,会比较慢;磁盘太小,编译时可能会出现空间不足的情况。注意 一定要保持linux联网状态。(前面三次按装,两次是因为联网问题,安装失败,最后一次按装失败是因为内存分配过小)
centos6.5下载地址: http://mirror.neu.edu.cn/centos/6.5/isos/x86_64/ ,选择 CentOS-6.5-x86_64-bin-DVD1.iso 下载
2.安装JDK
从oracle官网下载jdk,下载地址是 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html ,选择 jdk-7u45-linux-x64.tar.gz下载。
执行以下命令:
tar -zxvf jdk-7u45-linux-x64.tar.gz
vi /etc/profile
加入以下内容:
export JAVA_HOME =/usr/local/jdk1.7.0_45
export PATH=.:$ JAVA_HOME /bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
java -version
3.安装maven
从maven官网下载,下载地址是 http://maven.apache.org/download.cgi ,选择 apache-maven-3.0.5-bin.tar.gz 下载,不要选择3.1下载。
执行以下命令:
tar -zxvf apache-maven-3.0.5-bin.tar.gz
vi /etc/profile
修改内容如下:
export MAVEN _HOME =/usr/local/ apache-maven-3.0.5
export JAVA_HOME =/usr/local/jdk1.7.0_45
export PATH=.:$ MAVEN _HOME /bin :$ JAVA_HOME /bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
mvn -version
4.安装findbugs(可选步骤)
从findbugs官网下载findbugs,下载地址是 http://sourceforge.jp/projects/sfnet_findbugs/releases/ ,选择findbugs-3.0.0-dev-20131204-e3cbbd5.tar.gz下载。
执行以下命令:
tar -zxvf findbugs-3.0.0-dev-20131204-e3cbbd5.tar.gz
vi /etc/profile
修改内容如下:
export FINDBUGS_HOME=/usr/local/ findbugs-3.0.0-dev-20131204-e3cbbd5
export MAVEN_HOME=/usr/local/ apache-maven-3.0.5
export JAVA_HOME =/usr/local/jdk1.7.0_45
export PATH=.:$ FINDBUGS_HOME /bin :$ MAVEN _HOME /bin :$ JAVA_HOME /bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
findbugs -version
5.安装protoc
从protoc官网下载protoc,下载地址是 https://code.google.com/p/protobuf/downloads/list ,选择protobuf-2.5.0.tar.gz 下载。
为了编译安装protoc,需要下载几个工具,顺序执行以下命令
yum install gcc
yum intall gcc-c++
yum install make
如果操作系统是CentOS6.5那么gcc和make已经安装了。其他版本不一定。在命令运行时,需要用户经常输入“y”。
执行以下命令:
tar -zxvf protobuf-2.5.0.tar.gz
会生成一个文件夹protobuf-2.5.0,执行以下命令编译protobuf
cd protobuf-2.5.0
./configure --prefix=/usr/local/protoc/
make && make install
vi /etc/profile
修改内容如下:
export FINDBUGS_HOME=/usr/local/ findbugs-3.0.0-dev-20131204-e3cbbd5
export MAVEN_HOME=/usr/local/ apache-maven-3.0.5
export JAVA_HOME=/usr/local/jdk1.7.0_45
export PATH=.:/usr/local/protoc/bin:$ FINDBUGS_HOME /bin :$ MAVEN _HOME /bin :$JAVA_HOME/bin:$PATH
保存退出文件后,执行以下命令
source /etc/profile
protoc --version
6.安装其他依赖
顺序执行以下命令
yum install cmake
yum install openssl-devel
yum install ncurses-devel
安装完毕即可。
7.编译hadoop2.2源码
从hadoop官网下载2.2稳定版,下载地址是 http://apache.fayea.com/apache-mirror/hadoop/common/stable2/ ,下载hadoop-2.2.0-src.tar.gz 下载。
执行以下命令解压缩jdk
会生成一个文件夹 hadoop-2.2.0-src。源代码中有个bug,这里需要修改一下,编辑目录/usr/local/hadoop-2.2.0-src/hadoop-common-project/hadoop-auth中的文件pom.xml,执行以下命令
gedit pom.xml
在第55行下增加以下内容
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
保存退出即可。
最后执行如下命令:
cd /usr/local/hadoop-2.2.0-src
mvn package -DskipTests -Pdist,native,docs
大概1个多钟头后,如果看到以下图中红色圈起部分,说明编译成功
编译后的代码在/usr/local/hadoop-2.2.0-src/hadoop-dist/target下面
可以执行如下命令查看
cd /usr/local/hadoop-2.2.0-src/hadoop-dist/target
ls
可以看到如下文件目录结构,说明已经把hadoop2.2编译好了