heq*_*128 6 java-native-interface java.library.path apache-spark
我想用jni在spark中调用我的c ++ lib.当我运行我的程序时,它显示java.lang.UnsatisfiedLinkError:java.library.path中没有hq_Image_Process,所以显然程序找不到我的hq_Image_Process.so.
在hadoop中,-files可以将xxx.so文件分发给slave,如下所示:
[hadoop@Master ~]$ hadoop jar JniTest3.jar -files /home/hadoop/Documents/java/jni1/bin/libFakeSegmentForJni.so FakeSegmentForJni.TestFakeSegmentForJni input output
Run Code Online (Sandbox Code Playgroud)
有没有办法像火花中的hadoop一样调用我的hq_Image_Process.so?我将不胜感激任何帮助.
Wil*_*ire 15
首先,必须在所有工作节点上预安装本机库.必须在以下位置指定该库的路径spark-env.sh:
export SPARK_LIBRARY_PATH=/path/to/native/library
Run Code Online (Sandbox Code Playgroud)
SPARK_PRINT_LAUNCH_COMMAND 环境变量可能用于诊断它:
export SPARK_PRINT_LAUNCH_COMMAND=1
Run Code Online (Sandbox Code Playgroud)
如果一切设置正确,您将看到如下输出:
Spark Command:
/path/to/java -cp <long list of jars> -Djava.library.path=/path/to/native/library <etc>
========================================
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5836 次 |
| 最近记录: |