Blas:无法加载实施的实现:com.github.fommil.netlib.nativeStemblas -CentOS 7

发布于 2025-02-12 18:16:47 字数 2190 浏览 0 评论 0原文

最小的繁殖步骤:( 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

披肩女神 2025-02-19 18:16:47

我正在使用旧文档和新文档的混合。

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'

这对我有用:

scala> import dev.ludovic.netlib.NativeBLAS
scala> NativeBLAS.getInstance()
res0: dev.ludovic.netlib.NativeBLAS = dev.ludovic.netlib.blas.JNIBLAS@de4bee9

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:

scala> import dev.ludovic.netlib.NativeBLAS
scala> NativeBLAS.getInstance()
res0: dev.ludovic.netlib.NativeBLAS = dev.ludovic.netlib.blas.JNIBLAS@de4bee9

Spark 3.2 migrated to using ludovic over fommil.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文