倚天生态迁移-leveldbjni-all-1.8.jar适配倚天指导

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: leveldbjni-all-1.8.jar带有jni so,其是和架构相关的,当遇到该jar包在倚天上报错不兼容时,可通过此指导书迁移,编译一个全架构通用的jar包

迁移原因

(1)官方Maven仓库的jar包没有包含aarch64版本的so

https://mvnrepository.com/artifact/org.fusesource.leveldbjni/leveldbjni-all/1.8

(2)openlabtestting有aarch64兼容的版本so, 但是依赖的glibc版本过高,需要glibc 3.4.21

https://mvnrepository.com/artifact/org.openlabtesting.leveldbjni/leveldbjni-all/1.8

(3)鲲鹏镜像仓存在aarch64兼容版本,也支持低版本glibc,但是不同时兼容x86平台

https://mirrors.huaweicloud.com/kunpeng/maven/org/fusesource/leveldbjni/leveldbjni-all/1.8/

迁移方法

主要参考了迁移指导,部分步骤上略有不同

https://bbs.huaweicloud.com/forum/thread-22684-1-1.html

项目

版本

OS

Centos 7.9

maven

3.9.1

操作系统默认安装版本过低,需要升级

gcc

4.8.5

安装编译依赖

yum install git

yum install gcc-c++

yum install cmake

yum install automake

yum install libtool*

yum install automake

编译snappy

下载代码https://codeload.github.com/google/snappy/tar.gz/refs/tags/1.1.5

解压代码后执行如下步骤编译

编译leveldb

需要下载如下leveldb代码编译,因为开源官方的leveldb需要修改代码或者打一些patch才能匹配leveldbjni的接口,如下代码已经做了适配和修改。

下载代码https://codeload.github.com/Xingwd/leveldb/zip/refs/heads/my-leveldb-1.19

解压代码后执行如下步骤编译

编译leveldbjni-99-master-SNAPSHOT.jar

下载leveldbjni master分支,master分支已支持aarch64

https://github.com/fusesource/leveldbjni.git

leveldbjni-master目录下执行

编译并安装leveldbjni-99-master-SNAPSHOT.jar到本地maven仓库

image.png

编译leveldbjni-linux64-aarch64-99-master-SNAPSHOT.jar

cd leveldbjni-master/leveldbjni-linux64-aarch64/目录下执行

编译安装leveldbjni-linux64-aarch64-99-master-SNAPSHOT.jar到本地maven仓库

image.png

编译leveldbjni-all-1.8.jar

cd leveldbjni-master/leveldbjni-linux64-aarch64/目录下

修改pom.xml

image.png

image.png

然后执行编译

image.png

编译成功

相关文章
|
10月前
|
Java Linux Maven
倚天生态迁移-Java业务jar包迁移倚天适配实践总结
有些jar包有jni调用,其调用的so是和处理器架构强相关的,不同处理器架构需要使用不同的so,若jar包没有包含arm64/aarch64处理器架构的so,则在倚天上使用该jar包需要进一步适配增加aarch64的支持。
|
16天前
|
Java Docker 容器
|
16天前
|
运维 Java Shell
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
Linux非常详细的shell运维脚本一键启动停止状态SpringBoot打成可运行jar包
63 0
|
16天前
|
Java Maven 微服务
springboot项目开启远程调试-jar包
springboot项目开启远程调试-jar包
35 0
|
16天前
|
Java 测试技术 Maven
maven 打jar包:mvn clean package
maven 打jar包:mvn clean package
45 7
|
12天前
|
Oracle Java 关系型数据库
实时计算 Flink版操作报错合集之本地打成jar包,运行报错,idea运行不报错,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
31 6
|
16天前
|
Java Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(一)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
23 0
|
8天前
|
Oracle Java 关系型数据库
实时计算 Flink版产品使用合集之在同步Oracle数据时,需要下载并添加到项目中的jar包主要包括哪些
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
12天前
|
Oracle Java 关系型数据库
实时计算 Flink版操作报错合集之本地打成jar包,运行报错,idea运行不报错,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
25 0
|
16天前
|
Java Go Maven
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录(二)
向 Maven 中央仓库上传一个修改过的基于jeecg的autoPOI的 jar包记录
17 0
http://www.vxiaotou.com