云网牛站
所在位置:首页 > Linux教程 > Ubuntu18.04系统中编译hadoop2.7.6支持snappy

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

2018-07-25 15:04:07作者:benny周稿源:开源社区

使用的是Ubuntu18.04版本,编译hadoop2.7.6支持snappy。请按下面所说的版本进行,其它版本不一定能够成功。

 

下载Apache Hadoop

官网下载hadoop2.7.6版本,目前最新版本是hadoop3.0.3。

 

解压

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

#读取 BUILDING.txt文件 上图中用红色框选中的文件,是官方的编译步走:

Build instructions for Hadoop

Requirements:

* 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 )

* 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)

Installing required packages for clean install of Ubuntu 14.04 LTS Desktop:

* Oracle JDK 1.7 (preferred)

$ sudo apt-get purge openjdk*

$ sudo apt-get install software-properties-common

$ sudo add-apt-repository ppa:webupd8team/java

$ sudo apt-get update

$ sudo apt-get install oracle-java7-installer

* Maven

$ sudo apt-get -y install maven

* Native libraries

$ sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev

* ProtocolBuffer 2.5.0 (required)

$ sudo apt-get -y install libprotobuf-dev protobuf-compiler

Optional packages:

* Snappy compression

$ sudo apt-get install snappy libsnappy-dev

* Bzip2

$ sudo apt-get install bzip2 libbz2-dev

* Jansson (C Library for JSON)

$ sudo apt-get install libjansson-dev

* Linux FUSE

$ sudo apt-get install fuse libfuse-dev

 

安装依赖

jdk、参考:https://ywnz.com/linuxjc/1746.html,maven就不说了,不会的话你也别学hadoop了。也可以参考:https://ywnz.com/linuxjc/1836.html

 

本地依赖

sudo apt-get -y install build-essential autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev snappy libsnappy-dev bzip2 libbz2-dev libjansson-dev fuse libfuse-dev

注意 libssl-dev安装换成 libssl1.0-dev版本。 我之前就是默认安装,在编译OpenSSL功能的时候一直卡主编译不通过。具体错误大致形式如下:

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

 

安装protobuf

1.下载

1].googletest下载,protobuf编译需要依赖它,下载地址,最好选择1.7.0版本,1.7.0版本后目录结构有变化。

2].protobuf下载 官方文档中说可以通过下面命令安装,但是我发现libprotobuf-dev没有,只好手动安装

$ sudo apt-get -y install libprotobuf-dev protobuf-compiler

protobuf下载地址,最好选择2.5.0版本与官方一致, 解压后,把前面下载的googletest复制到protobuf的跟目录,并且重命名为gtest

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

2.编译

1].运行autogen.sh 生成configure

2]运行configure

3]make

4]sudo make install 验证protobuf是否安装成功

benny@benny-ubuntu:~/software/protobuf-2.5.0$ protoc --version

libprotoc 2.5.0

可看到安装成功了。

 

安装snappy

1.下载地址

2.编译安转和protobuf一样。configure、make、sudo make install 安装完成可以验证

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

编译hadoop 到现在,准备工作算是做完了。maven命令编译。

3.进入hadoop的根目录执行下面的maven命令

mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib -Drequire.snappy -Dbundle.snappy -Drequire.openssl -Dbundle.openssl 

4.编译完成后./hadoop-dist/target/ 目录下就是最终生成的文件了。

benny@benny-ubuntu:~/software/hadoop-2.7.6-src$ ll ./hadoop-dist/target/

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

支持snappy的本地动态链接库位于./hadoop-dist/target/hadoop-2.7.6/lib/native/

benny@benny-ubuntu:~/software/hadoop-2.7.6-src$ ll ./hadoop-dist/target/hadoop-2.7.6/lib/native/*

Ubuntu18.04系统中编译hadoop2.7.6支持snappy

 

相关主题

Ubuntu 16.04 snappy简介之桌面篇

精选文章
热门文章