You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka Streams使用问题:Lib RocksDB出现UnsatisfiedLinkError错误

解决Kafka Streams RocksDB JNI加载失败的UnsatisfiedLinkError

这个错误是RocksDB的JNI本地库加载失败导致的,在Windows环境下运行Kafka Streams 1.1.0版本很容易碰到这类问题,我给你几个实用的解决办法:

  • 手动修复RocksDB本地库
    Kafka 1.1.0依赖的RocksDB版本在Windows上可能存在兼容性问题。你可以尝试:

    1. 下载适配Windows平台的librocksdbjni.dll文件(推荐和Kafka版本匹配的5.x系列,比如5.14.2);
    2. 将dll文件放到JVM的java.library.path默认目录(比如JRE的bin文件夹),或者启动程序时通过JVM参数指定路径:
      -Djava.library.path=C:\path\to\your\dll\directory
      

    也可以在SBT依赖里明确指定兼容的RocksDB JNI版本,覆盖Kafka默认的依赖:

    libraryDependencies += "org.rocksdb" % "rocksdbjni" % "5.14.2"
    
  • 临时切换为内存状态存储(仅测试用)
    如果只是开发测试单词计数功能,不想折腾本地库,可以把状态存储改成内存模式,这样就绕开了RocksDB的依赖。在构建拓扑时给count操作指定内存存储:

    val wordCounts = textLines
      .flatMapValues(text => text.toLowerCase.split("\\W+"))
      .groupBy((_, word) => word)
      .count(Materialized.as("word-counts").withStoreType(KeyValueStore.MemoryKeyValueStore))
    

    注意:内存存储重启后状态会丢失,绝对不能用于生产环境。

  • 安装VC++运行时库
    RocksDB的JNI库依赖微软的Visual C运行时组件,如果你的系统缺少这个,就会加载失败。去微软官网下载安装**Visual C Redistributable for Visual Studio 2015/2017/2019**(选对应系统位数的版本),安装完成后重启电脑再运行程序。

  • 清理损坏的临时文件
    错误里提到的dll是JVM从依赖包中提取到临时目录的,可能文件已经损坏。手动删除C:\Users\user\AppData\Local\Temp\下所有以librocksdbjni开头的文件,然后重新运行程序,让JVM重新提取正确的库文件。

内容的提问来源于stack exchange,提问作者mukesh210

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:01:07