RocksDB 在 macOS M 系列 上运行时报错的解决方案

问题现象

项目中引入可Kafka Stream ,Windows下启动不报错 ,但是在 macOS M系列 环境下就会报错,初步定位是使用 Java 项目调用 RocksDB 时,运行过程中出现以下报错:

  • UnsatisfiedLinkError: no rocksdbjni in java.library.path
  • 或者 librocksdbjni.dylib 无法被正确加载。
Exception in thread "kafka-streams-app001-f566769f-d99b-45fa-9a5a-5ebf722fd601-StreamThread-1" java.lang.UnsatisfiedLinkError: Can't load library: /var/folders/qj/l1h4j0mj0bs56qd20d4sr3_40000gn/T/librocksdbjni13358465134412954828.jnilibat java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2622)at java.base/java.lang.Runtime.load0(Runtime.java:765)at java.base/java.lang.System.load(System.java:1852)at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:78)at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:56)at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:64)at org.rocksdb.RocksDB.<clinit>(RocksDB.java:35)at org.rocksdb.DBOptions.<clinit>(DBOptions.java:21)at 

原因分析

  1. 缺少 JNI 动态库依赖:RocksDB Java 依赖 rocksdbjni,需要正确的本地动态库(.dylib)文件。

  2. 依赖未引入:Java 层需要 rocksdbjni 的 Maven 依赖

解决方案

  1. 添加 Java 依赖
    在项目的 pom.xml 中引入 RocksDB Java 依赖:

    <dependency><groupId>org.rocksdb</groupId><artifactId>rocksdbjni</artifactId><version>8.3.2</version> <!-- 请使用最新稳定版本 -->
    </dependency>
    

添加依赖之后 RocksDB 会以内嵌库的形式打包进应用,无需单独安装系统级 RocksDB。

总结

  • 必须引入 rocksdbjni 依赖,否则缺少 JNI 支持。

这样 macOS M系列 上即可成功运行 RocksDB。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97794.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习之第五课卷积神经网络 (CNN)如何训练自己的数据集(食物分类)

简介 之前一直使用的是现有人家的数据集&#xff0c;现在我们将使用自己的数据集进行训练。 基于卷积神经网络 (CNN) 的 MNIST 手写数字识别模型 一、训练自己数据集 1.数据预处理 我们现在有这样的数据集如下图&#xff1a; 每一个文件夹里面有着对应的图片。我们要将这些…

【Big Data】AI赋能的ClickHouse 2.0:从JIT编译到LLM查询优化,下一代OLAP引擎进化路径

目录 1. 什么是ClickHouse&#xff1f; 2. 诞生背景与发展历程 3. 架构设计解析 3.1 存储引擎&#xff1a;MergeTree家族 3.2 分布式模型&#xff1a;分片与副本 3.3 执行流程&#xff1a;向量化与并行计算 4. 解决的问题与适用场景 4.1 典型问题 4.2 适用场景 5. 关…

Vue实践篇-02,AI生成代码

问题描述这个是需求&#xff1a;动态表格、表格里边下拉框&#xff0c;弹框选择基础的列表&#xff0c;还行&#xff0c;这种真的是一时不知如何是好。打算晚上吃了饭找前端同事&#xff0c;帮忙看看。晚饭前&#xff0c;AI一下看看。结果&#xff0c;惊为天人&#xff01;&…

2025-08-28-zabbix5.0创建监控项通过脚本简单实现监控oracle11g的磁盘组和表空间的使用量

title: zabbix5.0创建监控项通过脚本简单实现监控oracle11g的磁盘组和表空间的使用量 authors: Loong date: 2025-08-28使用SQLPLUS配合crontab任务 用来执行sql获取信息的脚本 /home/oracle/zabbix_oracle_check.sh #!/bin/bash #用于zabbix agent被动模式的 非入侵性的检测 #…

MySQL-Redo Log(重做日志)

MySQL 的 Redo Log&#xff08;重做日志&#xff09;是 InnoDB 存储引擎的核心组件之一&#xff0c;是保证数据库持久性&#xff08;Durability&#xff09; 和崩溃恢复&#xff08;Crash Recovery&#xff09; 的关键机制。1. 什么是 Redo Log&#xff1f;它的核心作用是什么&…

嵌入式linux相机(2)

本人从0开始学习linux&#xff0c;使用的是韦东山的教程&#xff0c;在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。本人将前几章的内容大致学完之后&#xff0c;考虑到后续驱动方面得更多的开始实操&#xff0c;后续的内容将以韦东山教程Linux项目的内容…

云计算学习100天-第34天 -zabbix监控2

SourceURL:file:///home/student/Documents/zabbix.doczabbix服务器配置1. 拷贝zabbix软件包到pubserver#在此之前先从真机拷贝安装包[rootserver1 ~]# scp /linux-soft/s2/zzg/zabbix_soft/*.rpm 192.168.88.5:/root/#然后拷贝到pubserver[rootzabbixserver ~]# scp /linux-so…

猫头虎AI分享:无需OCR,基于ColQwen2、Qwen2.5和Weaviate对PDF进行多模态RAG的解决方案

无需OCR&#xff0c;基于ColQwen2、Qwen2.5和Weaviate对PDF进行多模态RAG的解决方案 关键词&#xff1a;多模态RAG、ColQwen2、Qwen2.5-VL、Weaviate 向量数据库、PDF 检索问答、无需 OCR、ColBERT 多向量、跨模态检索、MaxSim 相似度、知识库构建、AI 文档处理、视觉语言模型、…

HTML第三课:特殊元素

HTML第三课&#xff1a;特殊元素特殊元素代码展示特殊元素 不在行级元素和块级元素概念里面的元素无法控制没有宽高的元素 代码展示 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewpo…

蓝桥杯算法之基础知识(5)

目录 Ⅰ.in方法的使用 Ⅱ.字典的使用 Ⅲ.1MB 、KB、 B、 b(即bit)的转换&#xff08;必学&#xff09; Ⅳ.闰年or平年 Ⅴ.count和counter方法 1. count() 方法的使用场景 2. Counter 类的介绍 3. count() 与 Counter 的区别 4. Counter 的高级应用 5.Counter的另一种使用 Ⅵ.ma…

lesson52:CSS进阶指南:雪碧图与边框技术的创新应用

目录 一、CSS雪碧图&#xff1a;从性能优化到交互革命 1.1 技术原理与现代价值 1.2 2025年实现工具与自动化流程 1.2.1 构建工具集成方案 1.2.2 在线生成工具推荐 1.3 高级应用案例与代码实现 1.3.1 多状态按钮系统 1.3.2 响应式雪碧图实现 1.4 最佳实践与性能优化 二…

案例——从零开始搭建 ASP.NET Core 健康检查实例

1. 项目创建与基础设置 创建新项目 首先&#xff0c;创建一个新的 ASP.NET Core Web API 项目&#xff1a; dotnet new webapi -n HealthCheckDemo cd HealthCheckDemo添加必要的 NuGet 包 添加健康检查相关的 NuGet 包&#xff1a; dotnet add package Microsoft.AspNetCore.D…

【Java生产级避坑指南】8. Tomcat线程池下的内存地雷:ThreadLocal泄漏检测与实战解决

摘要:某金融交易系统(Spring Boot 2.7 + Tomcat 9)在线上运行时出现严重内存泄漏:堆内存(4GB)72小时内耗尽并触发OOM,日均200万请求场景下,Full GC频率从正常1次/天飙升至6次/小时。排查发现,根源是ThreadLocal未清理——Tomcat线程池复用线程时,UserInfo等大对象被T…

云端职达:你的AI求职专属猎头,颠覆传统招聘模式

在求职的“金三银四”或“金九银十”&#xff0c;每一分每一秒都弥足珍贵。面对浩如烟海的招聘信息&#xff0c;你是否还在花费大量时间一条条筛选、重复投递简历&#xff0c;最终却常常石沉大海&#xff1f;传统求职方式的低效和“已读不回”的窘境&#xff0c;让许多求职者感…

Parasoft C/C++test如何实现开发环境内嵌的安全检测

Parasoft 作为嵌入式质量与安全领域的全球领先供应商&#xff0c;其 C/Ctest 平台依托 IDE 级原生集成、实时合规检测引擎与缺陷闭环治理框架&#xff0c;将传统静态应用安全测试由项目末期集中执行前移至编码阶段&#xff0c;显著降低缺陷修复成本并缩短认证周期&#xff0c;为…

leetcode-每日一题-人员站位的方案数-C语言

3025. 人员站位的方案数 I 输入&#xff1a; 2 < n < 50 points[i].length 2 0 < points[i][0], points[i][1] < 50 points[i] 点对两两不同。 // 按x降序&#xff0c;按y升序 int cmp(const void *a, const void *b) {int *p *(int **)a;int *q *(int **)b;if(…

ClickHouse中的ON CLUSTER关键字

目录 ClickHouse中的ON CLUSTER关键字 前置基础 ClickHouse 中的 MergeTree 与 ReplicatedMergeTree ON CLUSTER 查询在集群上的正确用法(为什么 查询/写入数据 不用 ON CLUSTER) 与不使用 ON CLUSTER 的区别 注意事项与坑 常用配套命令 ClickHouse中的ON CLUSTER关键字 前置…

Python绘图动态可视化:实时音频流

在数据可视化中&#xff0c;动画是一种非常有效的方式&#xff0c;可以帮助我们更好地理解数据的变化和动态过程。Python 的 matplotlib.animation 模块提供了强大的功能来创建动画。本文将介绍如何使用 matplotlib.animation 创建简单的动画&#xff0c;并展示一个更复杂的实时…

【Vue2 ✨】Vue2 入门之旅(七):事件处理

在前几篇文章中&#xff0c;我们学习了指令与过滤器。本篇将介绍 事件处理&#xff0c;重点包括 v-on、事件修饰符以及键盘事件。 目录 事件绑定 v-on事件修饰符键盘事件小结 事件绑定 v-on Vue 使用 v-on&#xff08;缩写 &#xff09;来监听事件。 <div id"app&qu…

高效数据传输的秘密武器:Protobuf

当涉及到网络通信和数据存储时&#xff0c;数据序列化一直都是一个重要的话题&#xff1b;特别是现在很多公司都在推行微服务&#xff0c;数据序列化更是重中之重&#xff0c;通常会选择使用 JSON 作为数据交换格式&#xff0c;且 JSON 已经成为业界的主流。但是 Google 这么大…