0、工具准备
jdk-8u311-linux-x64.tar
apache-maven-3.8.4-bin.tar
hadoop-3.3.1-src.tar
apache-ant-1.9.16-bin.tar(build工具,打包用)
protobuf-2.5.0.tar(序列化的框架)
1、编译工具安装
安装jdk
就不做介绍了
安装配置maven
tar -zxvf apache-maven-3.8.4-bin.tar.gz
解压完之后,设置镜像,在/apache-maven-3.8.4/conf路径下setting.xml文件
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
设置环境变量
vim /etc/profile
##MAVEN_HOME
export MAVEN_HOME=/opt/software/apache-maven-3.8.4
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
验证一下
mvn -version
安装配置ant
解压,配置环境变量
##ANT_HOME
export ANT_HOME=/opt/software/apache-ant-1.9.16
export PATH=$PATH:$ANT_HOME/bin
验证
ant -version
安装glibc-headers 和g++命令如下
yum install glibc-headers
yum install gcc-c++
安装make和cmake
yum install make
yum install cmake
解压配置protobuf
tar -zxvf protobuf-3.18.1.tar.gz
protobuf文件夹下执行以下操作
yum install automake
yum install libtool
yum install autoconf
./autogen.sh
./configure
make
make check
make install
ldconfig
添加环境变量
#LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/software/protobuf-2.5.0
export PATH=$PATH:$LD_LIBRARY_PATH
验证
protoc --version
安装openssl库
yum install openssl-devel
安装ncurses-devel库
yum install ncurses-devel
2、编译源码
解压hadoop源码到指定目录
tar -zxvf hadoop-3.3.1-src.tar.gz -C /opt/
源码主目录下执行编译命令
mvn clean package -DskipTests -Pdist,native -Dtar
//参数:clean → 清理旧的jar包 package →打包hadoop源码编译之后的安装包
-DskipTests →跳过测试 -Pdist,native →生成结果目录的后缀dist,
native:本地cpu相吻合的.so动态链接库,会将其一并打包到安装包中去
-Dtar → 打包后的目标压缩包的类型,xxx.tar.gz
报错卡好久了,无语....查了不少资料总结出靠谱的解决办法如下
因为hadoop的版本太高,cmake的版本低导致的
需要卸载本机cmake并手动下载高版本的cmake
卸载
yum erase cmake
下载cmake包链接Download | CMake
解压进入主目录执行以下命令
./configure
make
make install
cmake --version
然后重新执行编译命令
注意:中间还碰到有的压缩包下载不下来,解决办法就是根据提示,手动下载后放到指定目录下,重新打包就行了