Apache spark Spark netlib java BLAS

Apache spark Spark netlib java BLAS,apache-spark,blas,netlib,Apache Spark,Blas,Netlib,我正在尝试对不工作的ApacheSpark和netlib设置进行故障排除,我不知道下一步该怎么做 以下是一些信息: Spark 1.3.1(但也尝试了1.5.1) 具有3个节点的介观星团 Ubuntu Trusty安装在每个节点上,并按照BLAS包安装 $ dpkg -l | grep 'blas\|atlas\|lapack' ii libopenblas-base 0.2.8-6ubuntu1 amd64

我正在尝试对不工作的ApacheSpark和netlib设置进行故障排除,我不知道下一步该怎么做

以下是一些信息:

  • Spark 1.3.1(但也尝试了1.5.1)
  • 具有3个节点的介观星团
  • Ubuntu Trusty安装在每个节点上,并按照BLAS包安装

    $ dpkg -l | grep 'blas\|atlas\|lapack'
    ii  libopenblas-base                    0.2.8-6ubuntu1                   amd64        Optimized BLAS (linear algebra) library based on GotoBLAS2
    
    $ update-alternatives --get-selections | grep 'blas\|lapack'
    libblas.so.3                   auto     /usr/lib/openblas-base/libblas.so.3
    
我构建了一个示例jar,用于测试是否可以检测此库,代码如下:

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
另外,如果我尝试用这个软件包启动一个spark shell,它也不起作用

spark-shell --packages com.github.fommil.netlib:all:1.1.2

看起来netlib java实现正在加载NativeRefBLAS,但没有加载NativeSystemBLAS。这意味着您包含的“com.github.fommil.netlib:all”工作正常,因为如果没有它,您将使用非本机F2J实现。问题是您希望使用系统提供的BLAS(OpenBLAS),而不是netlib java附带的参考实现。这可能只是在spark执行器可见的位置获取正确的共享库的问题

您说过您链接了libblas.so.3,但如中所述,您还需要配置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.3

谢谢你的回复。没有找到libblas.so或liblapack.so的任何替代方案。我不知道这是否已经是一个原因。尽管如此,我的小工具现在链接到NativeSystemBLAS。但是spark shell和任何spark作业仍然链接到F2J实现,我无法找出其中的区别:/
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.3