我正在试着排除我的apache火花和netlib设置的故障,我不知道下一步该做什么。
这里有一些信息:
我已经构建了一个示例jar来测试netlib-java是否能够检测到这个库,下面的代码如下:
object Main extends App {
println(com.github.fommil.netlib.BLAS.getInstance().getClass().getName())
println(com.github.fommil.netlib.LAPACK.getInstance().getClass().getName())
}当我执行这段代码时,我会得到以下响应:
$ java -jar artifacts/BLAStest-assembly-1.0.jar
Mar 29, 2016 3:43:33 PM com.github.fommil.netlib.BLAS <clinit>
WARNING: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
Mar 29, 2016 3:43:33 PM com.github.fommil.jni.JniLoader liberalLoad
INFO: successfully loaded /tmp/jniloader6790966128222263615netlib-native_ref-linux-x86_64.so
com.github.fommil.netlib.NativeRefBLAS
Mar 29, 2016 3:43:33 PM com.github.fommil.netlib.LAPACK <clinit>
WARNING: Failed to load implementation from: com.github.fommil.netlib.NativeSystemLAPACK
Mar 29, 2016 3:43:33 PM com.github.fommil.jni.JniLoader load
INFO: already loaded netlib-native_ref-linux-x86_64.so
com.github.fommil.netlib.NativeRefLAPACK所以在这里似乎很好用。但星星之火无法探测到图书馆。我已将此java依赖项添加到程序集jar中。
com.github.fommil.netlib:all:1.1.2此外,如果我试图启动这个包的火花外壳,它不工作。
spark-shell --packages com.github.fommil.netlib:all:1.1.2发布于 2016-04-19 15:21:49
看起来您的netlib-java实现正在加载NativeRefBLAS,但没有加载NativeSystemBLAS。这意味着您包含的"com.github.fommil.netlib:all“工作正常,因为如果没有它,您将使用非本地F2J实现。问题是您希望使用系统提供的BLAS (OpenBLAS),而不是netlib-java附带的参考实现。这可能只是将正确的共享库放在您的火花执行器可以看到的位置上的问题。
您说您链接了libblas.so.3,但是正如netlib-java自述中所描述的,您还需要配置libblas.so、liblapack.so和liblapack.so.3:
sudo apt-get install libatlas3-base libopenblas-base
sudo update-alternatives --config libblas.so
sudo update-alternatives --config libblas.so.3
sudo update-alternatives --config liblapack.so
sudo update-alternatives --config liblapack.so.3https://stackoverflow.com/questions/36286313
复制相似问题