Blas:无法加载实施的实现:com.github.fommil.netlib.nativeStemblas -CentOS 7
最小的繁殖步骤:( Centos 7)
scala> import com.github.fommil.netlib.BLAS
import com.github.fommil.netlib.BLAS
scala> println(BLAS.getInstance().getClass().getName())
22/07/03 20:09:42 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
22/07/03 20:09:42 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
com.github.fommil.netlib.F2jBLAS
我做了什么。构建 source。 链接库:
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/libblas.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/libblas.so.3
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/liblapack.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/liblapack.so.3
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/libblas.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/libblas.so.3
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/liblapack.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/liblapack.so.3
更新的ld.conf:
include ld.so.conf.d/*.conf
/usr/local/lib
/usr/lib64
/opt/OpenBLAS/lib
ran ldconfig
。 设置ld_library_path
echo $LD_LIBRARY_PATH
/usr/local/lib:/usr/lib64:/opt/OpenBLAS/lib
尝试通过 lib带有-d参数
spark-shell --conf 'spark.executor.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLib=libopenblas.so' --conf 'spark.driver.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLib=libopenblas.so' --conf 'spark.executor.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLibPath=/opt/OpenBLAS/lib/' --conf 'spark.driver.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLibPath=/opt/OpenBLAS/lib/'
::
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.3
Minimium steps to reproduce:(CentOS 7)
scala> import com.github.fommil.netlib.BLAS
import com.github.fommil.netlib.BLAS
scala> println(BLAS.getInstance().getClass().getName())
22/07/03 20:09:42 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeSystemBLAS
22/07/03 20:09:42 WARN BLAS: Failed to load implementation from: com.github.fommil.netlib.NativeRefBLAS
com.github.fommil.netlib.F2jBLAS
What I have done. Built openBlas from source.
Linked the libraries:
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/libblas.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/libblas.so.3
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/liblapack.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /opt/OpenBLAS/lib/liblapack.so.3
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/libblas.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/libblas.so.3
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/liblapack.so
ln -sf /opt/OpenBLAS/lib/libopenblas.so /usr/lib64/liblapack.so.3
updated ld.conf:
include ld.so.conf.d/*.conf
/usr/local/lib
/usr/lib64
/opt/OpenBLAS/lib
Ran ldconfig
.
Set LD_LIBRARY_PATH
echo $LD_LIBRARY_PATH
/usr/local/lib:/usr/lib64:/opt/OpenBLAS/lib
Tried passing the lib with -D parameter:
spark-shell --conf 'spark.executor.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLib=libopenblas.so' --conf 'spark.driver.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLib=libopenblas.so' --conf 'spark.executor.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLibPath=/opt/OpenBLAS/lib/' --conf 'spark.driver.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLibPath=/opt/OpenBLAS/lib/'
Add libs to alternatives:
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.3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我正在使用旧文档和新文档的混合。
spark-shell -conf'spark.executor.extrajavaoptions = -ddev.ludovic.netlib.blas.blas.blas.nativelib = libopenblas.so'-conf'-conf'spark.driver.extrajavajavaoptions =-dddev.ludovic.ludovic.netlib.blas.blas.blas.blas.blas.blas.blas.blas.blas.blas.blas。blas。blas。blas。blas。blas。 nativelib = libopenblas.so' - conf 'spark.executor.extrajavaoptions = -ddev.ludovic.netlib.blas.blas.nativelibpath =/opt/opt/open/openblas/lib/libopenblas.so' - conf 'spark.driver.extrajavaoptions = -ddev.ludovic.netlib.blas.blas.nativelibpath =/opt/opt/open/openblas/lib/libopenblas.so'
这对我有用:
spark 3.2迁移到fommil offommil over fommil offommil。
I was using a mix of old documentation and new documentation.
spark-shell --conf 'spark.executor.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLib=libopenblas.so' --conf 'spark.driver.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLib=libopenblas.so' --conf 'spark.executor.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLibPath=/opt/OpenBLAS/lib/libopenblas.so' --conf 'spark.driver.extraJavaOptions=-Ddev.ludovic.netlib.blas.nativeLibPath=/opt/OpenBLAS/lib/libopenblas.so'
This worked for me with:
Spark 3.2 migrated to using ludovic over fommil.