您的位置:首页 > 运维架构

HADOOP源码编译

2017-12-03 16:30 176 查看

HADOOP源码编译

HADOOP源码编译
编译目的

环境准备

Centos环境准备

Protocol Buffer 250安装

Snappy安装

Hadoop编译

验证

编译目的

hadoop官方下载的bin包中并不支持snappy压缩,需自行编译增加支持。



环境准备

hadoop编译依赖查看源码包中的BUILDING.txt

Build instructions for Hadoop

----------------------------------------------------------------------------------
Requirements:

* Unix System
* JDK 1.6+
* 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 )
* Internet connection for first build (to fetch all Maven and Hadoop dependencies)


其中jdk,maven的安装不再叙述。

Centos环境准备

Centos开发环境包安装

yum groupinstall Development tools


zlib devel包安装

yum install -y zlib-devel


openssl devel包安装

yum install -y openssl-devel


cmake 安装

yum install -y cmake


Protocol Buffer 2.5.0安装

Protocol Buffer为google开发的数据交换格式,支持多种开发语言。

protobuf2.5下载

在编译protocl buffer时还依赖google test。

gtest1.5下载

1. 解压protobuf2.5

tar xzf protobuf-2.5.0.tar.gz


2. 解压gtest1.5

cd protobuf-2.5.0


tar xzf googletest-release-1.5.0.tar.gz


mv googletest-release-1.5.0 gtest


3. 编译安装

./autogen.sh


./configure --prefix=/usr/local/protobuf


make


make check


make install


4. 添加环境变量

PROTOBUF_HOME=/usr/local/protobuf

PATH=$PROTOBUF_HOME/bin:$PATH

export PROTOBUF_HOME


5. 验证安装结果

[hadoop@centos61 hadoop]$ protoc --version

libprotoc 2.5.0


Snappy安装

snappy是一个解压缩格式,为hadoop常用的一种压缩算法。

snappy1.1.6源码下载

1. 解压源码包

unzip snappy-1.1.6.zip


2. 编译安装

./autogen.sh

./configure

make

cp README.md  README

make install


这里cp README.md 是由于install中有个错误,源码中并无README文件。

Hadoop编译

hadoop2.6.0源码下载

1. 解压源码包

tar xzf hadoop-2.6.0-src.tar.gz


1. 编译源码包

mvn package -Pdist,native -DskipTests -Dtar  -Dbundle.snappy -Dsnappy.lib=/usr/local/lib


编译成功后截图



编译中可能会遇到下载文件卡住,可以ctrl+c终止后,重新执行。

验证

编译后输出路径为./hadoop-dist/target/

库路径:./hadoop-dist/target/hadoop-2.6.0/lib/native



最后将该目录下的库文件覆盖拷贝之安装环境中lib下即可,再次checknative。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息