centos编译hadoop3.1

文章目录

将 Hadoop 编译为本地(native)代码,加速文件编码、压缩、传输

安装本地工具

bash 复制代码
sudo yum install -y cmake gcc-c++ libtirpc-devel isa-l-devel snappy-devel zlib-devel openssl-devel libpmem-devel

gcc高版本(比如11)无法编译成功,会报错:ISO C++17 does not allow dynamic exception specifications

编译protoc

需使用旧版(2.5.0)protoc命令,否则报错:expected version is '2.5.0'

bash 复制代码
# 下载protobuf-2.5.0源码
./configure --prefix=/apps/svr/protobuf-2.5.0
make
make check
make install

# 优先使用旧版(2.5.0)protoc命令
export PATH=/apps/svr/protobuf-2.5.0/bin:$PATH

编译选项

使用tirpc作为rpc依赖,否则报错:

rpc/types.h: No such file or directory

undefined reference to 'xdrmem_create'

bash 复制代码
# 指定头文件
export CXXFLAGS="-I/usr/include/tirpc"
# 指定链接库
export LDFLAGS="-ltirpc"

maven仓库

DynamoDBLocal包需要从amazonaws下载,修改maven的settings.xml文件,使用mirror配置引导到国内可访问的下载地址:

xml 复制代码
<settings>
    <mirrors>
        <mirror>            
            <mirrorOf>dynamodb-local-oregon</mirrorOf>
            <id>aws</id>
            <url>https://dynamodb-local.s3.amazonaws.com/release</url>
        </mirror>
    </mirrors>
</settings>

编译hadoop

制作包含native code的tar包

bash 复制代码
mvn -Pdist,native -DskipTests -Dtar -Drequire.isal -Drequire.openssl -Drequire.snappy -Drequire.pmdk -Dmaven.javadoc.skip=true clean package -e -X

# 确认是否使用了本地的动态链接库
cd ./hadoop-dist/target/hadoop-3.1.2/bin
./hadoop checknative
相关推荐
我星期八休息4 分钟前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
a7520662831 分钟前
零基础实操:小龙虾 AI OpenClaw 接入 Kimi 详细步骤
运维·服务器
Goldbioinformatics1 小时前
Windows版Claude Cowork启动Linux问题
linux·运维·windows
念恒123061 小时前
Ext系列文件系统(下)
linux·运维·服务器
布吉岛的石头2 小时前
Docker Compose编排实战:多容器应用从开发到生产
运维·docker·容器
百胜软件@百胜软件2 小时前
破局存量时代:消费电子品牌的数字化突围与增长密码
大数据·零售数字化·数智中台·珠宝行业
小王毕业啦2 小时前
2009-2025年 华证ESG年度季度评级评分数据 xlsx
大数据·人工智能·数据挖掘·数据分析·社科数据·实证分析·经管数据
身如柳絮随风扬2 小时前
Nginx 完全指南:核心用途、配置文件详解与动态配置实践
运维·nginx
_codemonster2 小时前
系统分析师案例刷题(五)系统分析、系统设计和需求工程
大数据