TypechoJoeTheme

IT技术分享

统计

Hadoop编译——Linux Ubuntu 14.04 手动编译Hadoop 2.7.1源码

2015-11-01
/
1 评论
/
825 阅读
/
正在检测是否收录...
11/01

本教程以Ubuntu14.04作为系统环境,手动编译Hadoop 2.7.1源码。官网提供的编译好的二进制文件是基于32位操作系统的,如果使用64位操作系统,请手动编译源码。下面主要讲解如何在Ubuntu 14.04中安装所需组件和如何编译Hadoop 2.7.1 的源码。由于软件版本的关系,并不总是一帆风顺,但问题往往都是由于软件之间版本不兼容或者安装不正确造成的。

如果不愿意自己动手编译,或者编译过程出错无法解决,下面我提供自己编译好的文件供大家下载。

下载 hadoop-2.7.1.tar.gz 提取码:kit3

备注:编译使用JAVA 1.8.0_66,GCC/G++ 4.8.4(Ubuntu 4.8.4-2ubuntu1~14.04)

一、下载Hadoop 2.7.1

1、方式一 浏览器下载

进入官网下载Hadoop2.7.1 ,然后下拉找到Download,点击进去。

linux-ubuntu-14-04-hadoop-1

然后选择最新版,下载源码。因为目前提供的编译好的二进制文件是基于32位操作系统的,如果你使用的是64位操作系统,请下载源码自己编译。如果是32位系统,愿意折腾的也可以下载后自己编译。

linux-ubuntu-14-04-hadoop-2

1、方式二 WGET下载

执行以下命令下载Hadoop2.7.1源码

wget http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1-src.tar.gz

linux-ubuntu-14-04-hadoop-6

二、安装必备组件

以下是Apache官网给出的所需组件列表:

    • Unix System<
    • JDK 1.7+<
    • Maven 3.0 or later<
    • Findbugs 1.3.9 (if running findbugs)<
    • ProtocolBuffer 2.5.0<
    • CMake 2.6 or newer (if compiling native code), must be 3.0 or newer on Mac<
    • Zlib devel (if compiling native code)<
    • openssl devel ( if compiling native hadoop-pipes and to get the best HDFS encryption performance )<
    • Jansson C XML parsing library ( if compiling libwebhdfs )<
    • Linux FUSE (Filesystem in Userspace) version 2.6 or above ( if compiling fuse_dfs )<
    • Internet connection for first build (to fetch all Maven and Hadoop dependencies)<

1、安装JDK

因为Hadoop本身就是JAVA编写的,所以需要JVM,依次执行如下命令即可。

apt-get purge openjdk*

apt-get install software-properties-common

add-apt-repository ppa:webupd8team/java

apt-get update

apt-get install oracle-java8-installer //将8改为7可安装JDK7

输入java -version检测,如果出现以下内容,表示安装成功。

linux-ubuntu-14-04-hadoop-3

注、如果想下载指定版本进行安装 , 请参考Linux Ubuntu 14.04 下JDK 8 的安装与配置

2、安装Maven

输入以下命令安装Maven

apt-get -y install maven

linux-ubuntu-14-04-hadoop-4

输入mvn -v检测,如果出现以下内容,表示安装成功。

linux-ubuntu-14-04-hadoop-5

注、如果想下载指定版本进行安装 , 请参考Linux Ubuntu 14.04 Maven 3.3.3 的安装与配置

3、安装Native libraries

注意:如果没有安装GCC和G++,请先安装,因为部分依赖包需要编译。

安装GCC和G++,请参考Linux Ubuntu 14.04 下 GCC/G++ 的安装

依次输入以下命令安装Native libraries

apt-get -y install build-essential

apt-get -y install autoconf

apt-get -y install automake

apt-get -y install libtool

apt-get -y install cmake

apt-get -y install zlib1g-dev //如果安装失败可暂时不理

apt-get -y install pkg-config

apt-get -y install libssl-dev

4、安装ProtocolBuffer

apt-get -y install libprotobuf-dev

apt-get -y install protobuf-compiler

注、如果想下载指定版本进行安装 , 请参考Linux Ubuntu 14.04 下 ProtoBuf 2.6.1 的编译安装与配置

Hadoop 要求安装的ProtoBuf 为2.5.0,如果安装了较新的版本如2.6.1,编译时会抱如下错误
linux-ubuntu-14-04-hadoop-14

5、安装FindBugs

apt-get install findbugs

注、如果想下载指定版本进行安装 , 请参考Linux Ubuntu 14.04 下FindBugs 3.0.1 的安装与配置

以上1、2、3、4、5 都是必备的软件依赖包,下面还可以安装一些可选的包(也可不安装)

5、安装Snappy compression

apt-get -y install snapp

apt-get -y install libsnappy-dev

6、安装Bzip2

apt-get -y install Bzip2

apt-get -y install libbz2-dev

7、安装Jansson

apt-get -y install libjansson-dev

8、安装Linux FUSE

apt-get install fuse libfuse-dev

三、解压Hadoop2.7.1

前面已经下载了源码,现在可以直接解压了,切换到下载的目录,执行以下命令解压到/opt/下

tar -zvxf hadoop-2.7.1-src.tar.gz -C /opt/

linux-ubuntu-14-04-hadoop-7

四、编译Hadoop2.7.1

切换到相应目录,执行以下命令进行编译。

mvn package -Pdist,native,docs -DskipTests -Dtar

linux-ubuntu-14-04-hadoop-8

备注:编译时需要联网,并且编译过程很慢,请耐心等待。

五、编译出错处理

1、Out of memory errors

特别对于虚拟机中的Ubuntu,可能会占内存不足,一方面将虚拟机的内存增大,另一方面请执行

export MAVEN_OPTS="-Xms256m -Xmx512m"

2、No goals have been specified

linux-ubuntu-14-04-hadoop-10

这是因为pom.xml中build属性没有设置Goal。只需要打开pom.xml文件,在所有的下增加一行

<defaultGoal>compile</defaultGoal>

linux-ubuntu-14-04-hadoop-12

3、Ant BuildException

linux-ubuntu-14-04-hadoop-13

主要因为FindBugs版本不正确或者安装不正确,官方要求1.3.9以上版本。

如果想下载指定版本进行安装 , 请参考Linux Ubuntu 14.04 下FindBugs 3.0.1 的安装与配置

六、编译过程欣赏

之所以用欣赏两个字,主要是因为手动编译时,往往由于环境问题而不能成功。

1、正在编译HDFS

linux-ubuntu-14-04-hadoop-15

2、正在编译MapReduce

linux-ubuntu-14-04-hadoop-16

3、正在编译YARN

linux-ubuntu-14-04-hadoop-17

七、编译成功

linux-ubuntu-14-04-hadoop-18

linux-ubuntu-14-04-hadoop-19

linux-ubuntu-14-04-hadoop-20

linux-ubuntu-14-04-hadoop-21

八、编译后的文件

默认编译后的文件放在 hadoop-dist/target中

linux-ubuntu-14-04-hadoop-22

红色方框是编译后的文件,红色箭头所指是将编译后的文件压缩成的tar.gz包。

朗读
赞 · 0
版权属于:

IT技术分享

本文链接:

https://idunso.com/archives/2751/(转载时请注明本文出处及文章链接)