基于hadoop-3.1.4在Centos7进行编译过程

一、前期依赖项

1、前期依赖项: BUILDING.txt

Build instructions for Hadoop

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

* Unix System
* JDK 1.8
* Maven 3.3 or later
* ProtocolBuffer 2.5.0
* CMake 3.1 or newer (if compiling native code)
* 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)
* python (for releasedocs)
* bats (for shell code testing)
* Node.js / bower / Ember-cli (for YARN UI v2 building)

2、准备工作:

操作系统:

[root@node-01 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core)

下载依赖软件安装包(附下载地址)

1、jdk-8u231-linux-x64.tar.gz (hadoop 3.1.4 需要的java版本为 jdk 1.8)

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2、apache-maven-3.6.2-bin.tar.gz(Maven 项目管理工具 版本3.5以上即可,用以编译hadoop源码)

https://maven.apache.org/download.cgi

3、protobuf-2.5.0.tar.gz(需要把网页拉倒最下面找到2.5.0的版本)

https://github.com/protocolbuffers/protobuf/releases/tag/v2.5.0

4、cmake-3.13.5.tar.gz(yum安装可能无高版本,提前下载了。编译hadoop 3.1.3至少需要cmake3.1以上,推荐cmake3.7以上)

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

5、apache-ant-1.10.7-bin.tar.gz(可不安装,版本选择1.10.5或者1.10.7即可。PS:1.10.6可能与JDK1.8有一丢丢的冲突。本文未安装)

https://www.apache.org/dist/ant/binaries/

6、findbugs-3.0.1.tar.gz(可不安装,本文未安装)

https://sourceforge.net/projects/findbugs/

或者:http://findbugs.sourceforge.net/downloads.html

7、hadoop-3.1.4-src.tar.gz(最最关键的,需要编译的hadoop源码)

https://hadoop.apache.org/releases.html

二、解压软件包至相关目录

软件安装包下载完成后解压(jdk、maven、cmake可直接解压至/apps;protobuf解压至当前路径需要编译)

tar -zxvf jdk-8u231-linux-x64.tar.gz -C /apps/
tar -zxvf apache-maven-3.6.2-bin.tar.gz -C /apps/
tar -zxvf protobuf-2.5.0.tar.gz
tar -zxvf cmake-3.13.5.tar.gz -C /apps/

三、源码编译环境搭建

1、安装配置JDK 1.8(链接中有JDK环境变量配置过程)

可参考:https://blog.csdn.net/weixin_43901457/article/details/113865558

2、安装配置Maven 3.6

JAVA环境配置完成后,可进行Maven的安装配置

tar -zxvf apache-maven-3.6.2-bin.tar.gz -C /apps/ && mv apache-maven-3.6.2-bin/ maven/

解压maven安装包至/apps路径后,配置环境变量(MAVEN_HOME路径自己修改)

cat >> /etc/profile << EOF
#maven
export MAVEN_HOME=/apps/maven
export PATH=\$MAVEN_HOME/bin:\$PATH
EOF
source /etc/profile

mvn -v 测试是否安装成功

[root@node-01 ~]# source /etc/profile
[root@node-01 ~]# mvn -v
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /apps/maven
Java version: 1.8.0_221, vendor: Oracle Corporation, runtime: /root/jdk1.8.0_221/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

3、yum 安装源码编译相关依赖包

注:个别软件包的安装顺序不可乱

yum install -y gcc gcc-c++

yum install -y make cmake (这里cmake版本推荐为3.6版本以上,版本低源码无法编译!可手动安装,见下方步骤详情)

yum install -y autoconf automake libtool curl

yum install -y lzo-devel zlib-devel openssl openssl-devel ncurses-devel

yum install -y snappy snappy-devel bzip2 bzip2-devel lzo lzo-devel lzop libXtst

3.1、搭建源码编译环境时遇到的问题:

在完成上述JDK以及源码编译相关的全部依赖包之后安装编译cmake
1、yum 安装cmake无3.1以上版本
解决方法:

yum删除已安装的cmake:

yum erase -y cmake

官网下载cmake安装包
本次使用:cmake-3.13.5.tar.gz

解压安装包:

tar -zxvf cmake-3.13.5.tar.gz -C /apps/

跳转至cmake目录:cd /apps/ && mv cmake-3.13.5/ cmake/ && cd cmake/

编译(根据设备性能不同需要相应的编译时间): ./configure

安装: sudo make && make install

检验安装是否成功:cmake -version

[root@node-01 cmake]# cmake -version
cmake version 3.13.5

CMake suite maintained and supported by Kitware (kitware.com/cmake).

4、安装ProtocolBuffer 2.5.0

在完成上述JDK以及源码编译相关的全部依赖包之后安装编译ProtocolBuffer 2.5.0

1、首先进入ProtocolBuffer解压后的文件夹目录下:

mv protobuf-2.5.0/ /apps/protobuf
cd /apps/protobuf/

2、编译protobuf-2.5.0( --prefix=XXX"将软件编译至XXX路径")

./configure

3、安装protobuf-2.5.0

make && make install

4、配置环境变量(PROTOC_HOME路径根据实际路径修改)

cat >> /etc/profile << EOF
#protobuf
export PROTOC_HOME=/apps/protobuf
export PATH=\$PROTOC_HOME/bin:\$PATH
EOF

source /etc/profile

protoc --version测试是否安装成功

[root@node-01 protobuf]# protoc --version   
libprotoc 2.5.0

四、编译Hadoop 3.1.4

将进入Hadoop源码路径,执行maven命令

mvn clean package -DskipTests -Pdist,native -Dtar

第一次编译源码需要maven下载很多的jar包,所以编译的时间可能会很久。PS:科学上网会提升jar包下载速度
在这里插入图片描述
至此~Hadoop源码编译完成,
编译后的文件位于源码路径下 hadoop-3.1.4-src/hadoop-dist/target
在这里插入图片描述
hadoop-3.1.3.tar.gz 即为编译好的源码压缩包!

猜你喜欢

转载自blog.csdn.net/weixin_43901457/article/details/114441960