当前位置: > Linux集群 > Hadoop >

CentOS 6.4 编译 Hadoop 2.5.1

时间:2016-06-09 15:33来源:linux.it.net.cn 作者:IT

1 前提准备

建议关闭编译机器上的防火墙与SELinux。

需要保证编译机器可以访问互联网。

卸载机器上的OpenJDK,并安装上64位的Oracle JDK。此处选用JDK7。

注意:经过实践,直到Hadoop 2.6.3使用JDK8进行编译依然存在出现各种问题。理论上应该可以解决,可是实在不够方便。所以请使用jdk7进行编译!

 

 

 

2 下载所需软件包

2.1 下载Hadoop

当前最新Hadoop稳定版本为Hadoop 2.5.1。下载相应的hadoop源码包。

wpsDC90.tmp[4]

解压Hadoop:tar -zxvf hadoop-2.5.1-src.tar.gz

解压后目录为:

wpsDC91.tmp[4]

查看安装说明BUILDING.txt。显示如下:

wpsDC92.tmp[4]

说明:

  • 必须使用JDK1.6或更高版本。
  • Maven必须3.0或更高版本。
  • 其中Google Protobuf的版本必须为2.5.0。
  • Findbugs用于编译文档,不一定需要使用。
  • CMake为2.6或更高版本。

 

 

2.2 下载Maven

wpsDCA2.tmp[4]

 

 

 

2.3 下载Google Protobuf

Protobuf 2.5依然存在于Google Code之上,最新版本已经在GitHub上了。(打开Google Code可能需要FQ。)

wpsDCA3.tmp[4]

Ps:最近一次(2016年12月)编译protobuf发现GoogleCode上的protobuf已经不提供了。全部移植到了GitHub上,可GitHub上的版本编译很麻烦。所以只能从网上下载一个其他人备份的Protobuf2.5.0。至于GitHub上的那个版本,以后我会花点时间来解决的。

 

 

 

3 安装与编译

3.1 安装Maven

解压Maven:tar -zxvf apache-maven-3.2.3-bin.tar.gz

将解压的文件移动至 /usr/local/maven3/,此即maven的HOME目录。

wpsDCA4.tmp[4]

 

将Maven添加至环境变量。编辑/etc/profile文件,在文件末尾添加环境变量。

export JAVA_HOME=/usr/local/jdk7
export MAVEN_HOME=/usr/local/maven3
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin

 

刷新环境变量:source /etc/profile

测试Maven是否安装成功,查询Maven版本命令:mvn -version

若输出版本信息,则表示安装成功。

 

 

3.2 安装编译工具

首选需要安装编译工具

yum install gcc 

yum install gcc-c++ 

yum install make

或者直接安装RPM软件组:

yum -y groupinstall "Development tools" "Server Platform Development" "Desktop Platform Development"

等待一段下载安装的时间。

 

 

3.3 安装Google Protobuf

解压:tar -zxvf protobuf-2.5.0.tar.gz

进入解压后的目录,输入编译指令

./configure

make

make install

等待编译完成。

 

 

3.4 安装CMake与其他软件

yum install cmake

yum install openssl-devel (若安装了Development tools则不需要再安装此工具。)

yum install ncurses-devel (若安装了Development tools则不需要再安装此工具。)

 

 

3.5 开始编译Hadoop

进入到Hadoop解压目录中,即src目录。

 

在Hadoop2.2版本中需要修改hadoop-common-project/hadoop-auth/pom.xml 中的一个Bug。

pom.xml文件中缺少了一个jetty-util的依赖。

<dependency>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>jetty-util</artifactId>
    <scope>test</scope>
</dependency>

带该问题在Hadoop2.5中早就修改了。

 

在src目录下,运行Maven命令:mvn package -DskipTests -Pdist,native

注意:

  • 建议关闭防火墙和SELinux。
  • 使用Maven下载Jar包可能需要配置Maven的镜像。
  • 请耐心等待编译完成。

 

编译成功,看到Maven输出SUCCESS。

wpsDCA5.tmp[4]

 

编译完成后,编译的结果被放到hadoop-dist/target中。

wpsDCB6.tmp[4]

其中hadoop-2.5.1即可用于安装的hadoop 。

 




(责任编辑:IT)
------分隔线----------------------------