linux nd4j启动,Spark Deeplearning4j运行问题-“unable to load from [netlib-n

Deeplearning4J最新的版本(2015-11-4),重新编译后,运行scene-classification-spark下的SparkMnist程序出现unable to load from [netlib-native_system-linux-x86_64.so]等如下问题。

1)15/11/04 09:49:42 WARN scheduler.TaskSetManager: Lost task 4.0 in stage 0.0 (TID 4, 10.0.71.18): java.lang.ExceptionInInitializerError: unable to load from [netlib-native_system-linux-x86_64.so]

at com.github.fommil.jni.JniLoader.load(JniLoader.java:81)

at com.github.fommil.netlib.NativeSystemBLAS.(NativeSystemBLAS.java:42)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:264)

at org.nd4j.linalg.cpu.BlasWrapper.(BlasWrapper.java:47)

2)15/11/04 09:49:42 WARN scheduler.TaskSetManager: Lost task 2.0 in stage 0.0 (TID 2, 10.0.71.18): java.lang.NoClassDefFoundError: Could not initialize class org.nd4j.linalg.cpu.NDArray

at java.io.ObjectStreamClass.hasStaticInitializer(Native Method)

at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1743)

at java.io.ObjectStreamClass.access$100(ObjectStreamClass.java:72)

at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:250)

at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:248)

at java.security.AccessController.doPrivileged(Native Method)

原因是Spark的主节点以及data节点上没有安装合适的netlib-java库,导致程序运行过程中,由于找不到合适的blas函数库而中断。

解决方法就是在每个节点上将这些库装上。

针对ubuntu 14.04系统

1) 安装g++编译器

sudo apt-get install -y g++

2)安装gfortran编译器

sudo apt-get install -y gfortran

3) 安装blas库

sudo apt-get install -y libatlas3-base libopenblas-base

sudo apt-get install -y libopenblas-dev libatlas-base-dev libblas-dev

sudo apt-get install -y liblapack-dev

关联合适的 libblas*.so库

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

上述步骤走完后,再运行程序,上述问题消失。

这是针对Ubuntu 14.04采用openblas、atlas等native库的解决方案。

当然还有其它解决方案(见参考文献),针对不同的系统以及不同的函数库如MKL,需要采取不同的方式。

参考:

1 https://github.com/fommil/netlib-java#machine-optimised-system-libraries

2 http://apache-spark-user-list.1001560.n3.nabble.com/Native-library-can-not-be-loaded-when-using-Mllib-PCA-td7042.html

3 https://github.com/fommil/netlib-java/issues/62

4 https://github.com/fommil/netlib-java/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值