centos7编译源码之hadoop3.3.1

为什么要编译源码?

有时候我们需要更改源码更好的使用,
使用自己的机器编译的源码性能更高

前提

①必备的软件:
apache-ant
apache-maven
protobuf:Protobuf是一种平台无关、语言无关、可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储下载地址(github)
源码包
②非必须的软件
findbugs,findbugs官网下载
所有apache软件下载地址apache所有开源项目的链接
在这里插入图片描述
解压重命名环境变量

# 配置Maven
export MAVEN_HOME=/opt/maven
export PATH=$PATH:$MAVEN_HOME/bin

# 配置Maven使用的内存
export MAVEN_OPTS="-Xms1024m -Xmx2048m"

# 配置ant
export ANT_HOME=/opt/ant
export PATH=$PATH:$ANT_HOME/bin

# 配置findbugs
export FIND_BUGS_HOME=/opt/findbugs
export PATH=$PATH:$FIND_BUGS_HOME/bin

#protobuf
export PROTOC_HOME=/opt/protobuf
export PATH=$PROTOC_HOME/bin:$PATH

③需要下载的工具软件

yum -y install gcc*
yum install autoconf automake libtool cmake
yum -y install openssl-devel
yum -y install ncurses-devel
yum install lzo-devel zlib-devel bzip2
yum -y install libs*
yum install fuse-devel

验证安装

[root@hadoop100 opt]# ant -version
Apache Ant(TM) version 1.10.9 compiled on September 27 2020
[root@hadoop100 opt]# mvn -version
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /opt/maven
Java version: 1.8.0_131, vendor: Oracle Corporation, runtime: /opt/jdk/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-862.el7.x86_64", arch: "amd64", family: "unix"
[root@hadoop100 opt]# findbugs -version
3.0.1
[root@hadoop100 opt]# 

修改maven远程仓库地址(国外的慢!!)

    <mirror>
        <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>

编译protobuf并安装

进入protobuf安装目录

生成配置文件(如果下载的是源码的话需要执行,如果下载的是已经生成了配置文件的不需要操作)

./autogen.sh 

运行配置脚本,配置一些信息

./configure

编译(过程比较长)

make

安装

make install

验证:

protoc --version
which protoc

编译源码包

我这里没有源码包,所以又下载了一个源码包(src)
解压

[root@hadoop100 opt]# tar -zxvf hadoop-3.3.1-src.tar.gz -C ../

编译

mvn clean package -DskipTests -Pdist,native -Dtar
  参数:clean → 清理旧的jar包
       package →打包,hadoop源码编译之后的安装包
       -DskipTests →跳过测试
       -Pdist,native  →生成结果目录的后缀dist, native:本地cpu相吻合的.so动态链接库,会将其一并打包到安装包中去
       -Dtar → 打包后的目标压缩包的类型,xxx.tar.gz

在源码目录下

[root@hadoop100 hadoop-3.3.1-src]# mvn clean package -DskipTests -Pdist,native -Dtar

出现报错

[ERROR] Failed to execute goal org.apache.hadoop:hadoop-maven-plugins:3.3.1:cmake-compile (cmake-compile) on project hadoop-common: CMake failed with error code 1 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :hadoop-common

也是hadoop3.3.1的经典报错了,就不深究了,直接上解决办法
就是cmake版本太低:yum不行那就自己安装
yum删除已安装的cmake:yum erase cmake

官网下载cmake安装包,手动安装。下载链接:

解压安装包:tar -zxvf cmake-3.13.5.tar.gz -C …/
跳转至cmake目录:cd /opt/cmake

编译: ./configure

安装: make && make install

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

再次编译经历一个小时的等待终于是搞定了
在这里插入图片描述
当然不要忘记包的位置:
在这里插入图片描述
结束!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值