hadoop3.x编译源码(centos7平台,支持snappy)

hadoop

下载源码

https://archive.apache.org/dist/hadoop/common/

下载指定的版本,如:hadoop-3.0.3-src.tar.gz

上传linux

解压缩:

tar -zxvf hadoop-3.0.3-src.tar.gz

说明文档

从解压缩目录中有文件:BUILDING.txt,该文件是说明文档,详细介绍各个平台下的操作步骤

安装java相关的软件

安装jdk

见:https://www.malaoshi.top/show_1C7b6OYIHjW.html

安装maven

linux安装maven

maven的远程库和配置本地库

maven使用阿里云提供的Maven镜像服务器

安装c/c++编译环境

编译 snappy 等 需要使用

yum install -y gcc gcc-c++ make automake

安装snappy

下载

https://src.fedoraproject.org/repo/pkgs/snappy/

tar -zxvf snappy-1.1.3.tar.gz

进入目录:

cd snappy-1.1.3

安装

执行下面命令:

./configure
make
make install

Protobuf

必须是2.5版本

下载

https://github.com/protocolbuffers/protobuf/releases

云盘下载:
链接: https://pan.baidu.com/s/1eGm9F6Q5s0n2IizdDtRrWA
密码: n9j8

安装

tar zxvf protobuf-2.5.0.tar.gz
cd protobuf-2.5.0
./configure
make
make check
make install

测试

protoc --version

CMake

执行 mvn 时会用到

要求3.1以上版本,yum中cmake版本太低,所以要手动安装

下载

https://cmake.org/files/v3.13/

解压缩

tar zxvf cmake-3.13.0-Linux-x86_64

配置环境变量

vim /etc/profile

在最下行增加下面内容:

export PATH=/devtools/cmake-3.13.0-Linux-x86_64/bin/:$PATH

使其立即生效:

source /etc/profile

测试:

cmake -version

执行结果:

cmake version 3.13.0

其他安装

yum install autoconf automake libtool
yum install -y zlib
yum install zlib-devel
yum install -y openssl openssl-devel

安装 DynamoDBLocal-1.11.86

编译时需要用到 亚马逊 的 DynamoDBLocal,而这个库在 maven 阿里云仓库 上没有,需要额外处理

下载

下载jar:
https://s3-us-west-2.amazonaws.com/dynamodb-local/release/com/amazonaws/DynamoDBLocal/1.11.86/DynamoDBLocal-1.11.86.jar

下载pom:
https://s3-us-west-2.amazonaws.com/dynamodb-local/release/com/amazonaws/DynamoDBLocal/1.11.86/DynamoDBLocal-1.11.86.pom

安装

放到maven本地仓库地址,如下:

maven本地仓库\com\amazonaws\DynamoDBLocal\1.11.86

该路径应该已经建好了

编译

mvn package

参数说明:

  • Pdist,native :编译生成hadoop动态库;
  • DskipTests :跳过测试
  • Dtar :以tar打包
  • Dbundle.snappy :添加snappy压缩支持【默认官网下载的是不支持的】
  • Dsnappy.lib=/usr/local/lib :snappy在编译机器上安装后的库路径

命令一

进入 hadoop 目录,执行下面命令:

mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X

命令二(亲测可行)

跳过 javadoc 文档

mvn package -DskipTests -Pdist,native -Dtar -Drequire.snappy -e -X  -Dmaven.javadoc.skip=true

编译结果

控制台提示如下:

[INFO] BUILD SUCCESS

表示成功

编译文件

在 hadoop-3源码目录/hadoop-dist/target/ 目录下有 hadoop-3.0.3.tar.gz 文件,这个就是编译成功的 hadoop 压缩包


原文出处:/show_1IX1UPSpQtLP.html