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
相关推荐
云飞云共享云桌面16 分钟前
精密机械制造工厂10个SolidWorks研发共享一台服务器设计办公
运维·服务器·网络·云计算·电脑
babytiger30 分钟前
Windows 11 下格式化 Linux 分区 TF 卡(DiskPart 完整教程)
linux·运维·windows
Guheyunyi34 分钟前
安全风险预警系统的核价值与战略意义
大数据·人工智能·科技·安全·信息可视化
云和数据.ChenGuang35 分钟前
AI向量数据库chromadb的swagger-ui的运行使用教程
大数据·数据库·人工智能·ui·向量数据库·向量计算
renhongxia137 分钟前
生产线数智化质量可靠性管控与安全风险感知
运维·人工智能·安全·机器学习·架构·自动化
智能运维指南43 分钟前
信创改造 “二次开发陷阱”:国产DevOps 平台选型的原生功能完整性评估要点
运维·devops
yuweiade1 小时前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh
历程里程碑1 小时前
链表--LRU缓存
大数据·数据结构·elasticsearch·链表·搜索引擎·缓存
腾视科技TENSORTEC1 小时前
腾视科技大模型一体机解决方案:低成本私有化落地,重塑行业智能应用新格局
大数据·人工智能·科技·ai·ainas
秦渝兴1 小时前
用 Docker Compose 一键部署高可用集群(MySQL + Tomcat + Nginx)
运维·mysql·nginx·docker·容器·tomcat