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
相关推荐
亿信华辰软件1 分钟前
药企客商域主数据管理实践与挑战
大数据
冰冰的coco3 分钟前
如何设置需要sudo的命令开机自启动
linux·运维·服务器
辞旧 lekkk5 分钟前
【Linux】Linux进程控制(三)自主实现简易shell命令行解释器
linux·运维·服务器·学习·萌新
snpgroupcn13 分钟前
技术实战|出海企业收并购中SAP实施商选型与系统整合策略
大数据
HIT_Weston16 分钟前
119、【Ubuntu】【Hugo】首页板块配置:Template Lookup Order
linux·运维·ubuntu
wangt595219 分钟前
Ubuntu22.04.5的网络配置在重启后被重置的问题
linux·运维·服务器
不被定义的程序猿20 分钟前
如何使用docker搭建一个 aarch-linux-gun-gcc的交叉编译环境
linux·运维·服务器
RisunJan22 分钟前
Linux命令-logrotate(自动轮转、压缩、删除和邮件发送日志文件)
linux·运维·服务器
远方160922 分钟前
113-Oracle database26ai rpm安装和适配生产
大数据·数据库·sql·oracle·database
AC赳赳老秦29 分钟前
等保2.0合规实践:DeepSeek辅助企业数据分类分级与自动化报告生成
大数据·人工智能·分类·数据挖掘·自动化·数据库架构·deepseek