Scala项目集成OpenCV遇链接错误及Spark集群部署疑问
Scala+Spark+OpenCV项目链接错误问题
项目基础信息
- 开发语言:Scala
- 构建工具:Maven
- pom.xml中已配置OpenCV依赖:
<dependency> <groupId>org.openpnp</groupId> <artifactId>opencv</artifactId> <version>4.9.0</version> </dependency>
- 代码中已加入库加载语句:
System.loadLibrary(Core.NATIVE_LIBRARY_NAME)
初始运行错误
Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java490 in java.library.path
Spark集群相关疑问
该应用基于Spark开发,请问是否需要在集群的每个节点都加载OpenCV库,还是仅在主节点加载后,其他节点就能直接使用OpenCV功能?
已尝试的解决手段
- 构建包含所有依赖的胖JAR包,运行后错误仍存在
- 考虑通过绝对路径加载库:
System.loadLibrary("path/to/library.so"),但遇到阻碍:- 找不到预编译的
.so文件 - 当前通过SSH连接远程机器,无权限下载编译工具,无法用cmake编译OpenCV
- 计划在本地编译好
.so文件后传输到远程机器,但不确定该方案是否可行
- 找不到预编译的
补充更新:新的运行时错误
按照@dmytro-mitin的建议解决了之前的错误,但添加System.loadLibrary(Core.NATIVE_LIBRARY_NAME)后,仍出现运行时错误:
Caused by: java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_Mat()J
内容的提问来源于stack exchange,提问作者kryozen
相关产品推荐
相关产品推荐

