2016-03-29 12 views
5

私は動作していないapache sparkとnetlibの設定をトラブルシューティングしようとしていますが、次に何をすべきかわかりません。ここでSpark netlib-java BLAS

いくつかの情報:1.3.1(だけでなく、1.5.1を試してみました)

  • スパーク3のノードと
  • Mesosクラスターのすべてのノード上の
  • Ubuntuのトラスティと、次のインストールさ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 
    

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 

は、だから、ここでうまく動作するようです。 しかし、sparkはライブラリを検出できません。このJava依存関係をアセンブリのjarファイルに追加しました

com.github.fommil.netlib:all:1.1.2 

このパッケージでスパークシェルを起動しようとすると、動作しません。

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

答えて

3

あなたのnetlib-java実装はNativeRefBLASをロードしていますが、NativeSystemBLASはロードしていないようです。これは、「com.github.fommil.netlib:all」が含まれていることを意味します。これは、ネイティブでないF2J実装を使用することがないためです。問題は、netlib-javaに付属のリファレンス実装ではなく、システム提供のBLAS(OpenBLAS)を使用することです。これはたぶんあなたのスパークエグゼキュータに見える場所に適切な共有ライブラリを取得することになります。

あなたはlibblas.so.3をリンクすることを言ったが、netlib-java readmeで説明したように、あなたも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 
+0

感謝応答のために。 libblas.soまたはliblapack.soの代替手段は見つかりませんでした。これがすでに原因かもしれないかどうかは分かりません。それでも私の小さなツールはNativeSystemBLASにリンクしています。しかし、火花のシェルと火花の仕事はまだF2Jの実装にリンクして、私はそこに違いがあるかを見つけることができません: – wobu

関連する問題