文章目录

安装编译环境

当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就 是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有 一定的缺陷,但是Ant却克服了这些工具的缺陷。Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Hadoop需要 maven和ant工具进行编译管理

1、安装 jdk、gcc、gcc-c++ 、make、cmake、openssl-devel、ncurses-devel。


[root@node1 ~]# yum install java-1.7.0-openjdk*
[root@node1 ~]# yum install gcc
[root@node1 ~]# yum install gcc-c++
[root@node1 ~]# yum install openssl-devel
[root@node1 ~]# yum install cmake
[root@node1 ~]# yum install make
[root@node1 ~]# yum install ncurses-devel


2、maven配置

下载maven软件包。下载地址如下:

https://maven.apache.org/download.cgi

用winscp传到节点机

Hadoop的编译打包_java

解压maven软件包。


[root@node1 ~]# tar xvzf apache-maven-3.2.5-bin.tar.gz


把maven软件移到目录/usr/local下。


[root@node1 ~]# mv apache-maven-3.2.5 /usr/local/maven


编辑环境变量。


[root@node1 ~]# vim /etc/profile


文件末尾添加内容如下:

export M2_HOME=/usr/local/maven
export M2=$M2_HOME/bin
export MAVEN_OPTS="-Xms256m -Xmx512m"
export PATH="$M2:$PATH"

使环境变量生效。


[root@node1 ~]# source /etc/profile


检查maven版本,显示如下表示成功。

Hadoop的编译打包_hadoop_02

修改配置文件。

[root@node1 ~]# vim /usr/local/maven/conf/settings.xml

在​​<mirrors> </mirrors>​​内添加如下内容

<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.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.net/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>

3、protobuf配置

下载protobuf软件包。下载地址如下:

https://github.com/google/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.bz2

Hadoop的编译打包_centos_03

解压软件包。

Hadoop的编译打包_hadoop_04

出现这种情况原因:缺少bzip2包


yum install -y bzip2


之后再解压


[root@node1 ~]# tar xvjf /root/protobuf-2.5.0.tar.bz2


配置、编译、安装、加载。


[root@node1 protobuf-2.5.0]# cd /root/protobuf-2.5.0
[root@node1 protobuf-2.5.0]# ./configure --prefix=/usr/local/protobuf
[root@node1 protobuf-2.5.0]# make
[root@node1 protobuf-2.5.0]# make install
[root@node1 protobuf-2.5.0]# ldconfig


编辑环境变量。


[root@node1 protobuf-2.5.0]# vim /etc/profile


文件末尾添加内容如下:

export LD LIBRARY_PATH=/usr/local/protobuf
export PATH="/usr/local/protobuf/bin:$PATH"

使环境变量设置生效。


[root@node1 protobuf-2.5.0]# source /etc/profile


检查protobuf版本,显示如下表示成功。

Hadoop的编译打包_大数据_05

4、ant配置

下载ant软件包。下载地址如下:

http://mirrors.cnnic.cn/apache/ant/binaries/apache-ant-1.9.4-bin.tar.bz2

Hadoop的编译打包_linux_06

解压软件包。


tar xvjf apache-ant-1.9.4-bin.tar.bz2


把ant软件移到目录/usr/local下。


[root@node1 ~]# mv apache-ant-1.9.4 /usr/local/ant


编辑环境变量。


[root@node1 ~]# vim /etc/profile


在profile文件末尾添加内容如下:

export ANT_HOME=/usr/local/ant
export PATH="$JAVA_HOME/bin:$PATH:$HADOOP_PREFIX/bin:$PATH:$M2:$PATH:$ANT_HOME/bin"

使环境变量设置生效。


[root@node1 ~]# source /etc/profile


检查ant版本,显示如下表示成功。

Hadoop的编译打包_java_07

编译Hadoop软件

目前主流linux服务器大多使用用64位操作系统,由于hadoop官方网站下载的hadoop-2.6.0.tar.gz只提供32位的编译版本,为了在64位操作系统上运行hadoop,我们需要重新编译hadoop。

1、下载hadoop2.6版本的开源代码软件包

下载地址如下:

http://mirrors.cnnic.cn/apache/hadoop/common/stable/hadoop-2.6.0-src.tar.gz

Hadoop的编译打包_hadoop_08

2、解压软件包。


[root@node1 ~]# tar xvzf hadoop-2.6.0-src.tar.gz


3、进入软件目录,清理数据。


[root@node1 hadoop-2.6.0-src]# mvn clean


Hadoop的编译打包_hadoop_09

Hadoop的编译打包_hadoop_10

4、编译打包。

bug


[root@node1 hadoop-2.6.0-src]# mvn package -Pdist,native -DskipTests -Dtar


Hadoop的编译打包_linux_11

可能出现了版本不兼容,需更改libprotoc版本,改为2.5.0(注:文章内容已经更改,此bug仅作参考

Hadoop的编译打包_java_12

编译打包后显示如下信息:

Hadoop的编译打包_大数据_13

5、编译打包后在hadoop-dist/targe目录下生成相应软件包。

Hadoop的编译打包_java_14

hadoop-2.6.0.tar.gz软件包编译打包完成。