- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在运行 Fedora 23 的机器上运行 Spark 的 MLLib 中的示例时遇到了一些麻烦。我根据 Spark 文档使用以下选项构建了 Spark 1.6.2:
build/mvn -Pnetlib-lgpl -Pyarn -Phadoop-2.4 \
-Dhadoop.version=2.4.0 -DskipTests clean package
并在运行二进制分类示例时:
bin/spark-submit --class org.apache.spark.examples.mllib.BinaryClassification \
examples/target/scala-*/spark-examples-*.jar \
--algorithm LR --regType L2 --regParam 1.0 \
data/mllib/sample_binary_classification_data.txt
我收到以下错误:
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.92-1.b14.fc23.x86_64/jre/bin/java:符号查找错误:/tmp/jniloader5830472710956533873netlib-native_system- linux-x86_64.so: undefined symbol :cblas_dscal
这种形式的错误(netlib 的符号查找错误)不限于这个特定的例子。另一方面,Elastic Net 示例 (./bin/run-example ml.LinearRegressionWithElasticNetExample
) 运行没有问题。
我尝试了很多解决方案都无济于事。例如,我在这里查看了一些建议 https://datasciencemadesimpler.wordpress.com/tag/blas/ ,虽然我可以从 com.github.fommil.netlib.BLAS
和 LAPACK
成功导入,但上述符号查找错误仍然存在。
我已通读 fommil/netlib-java 中的 netlib-java 文档,并确保我的系统具有 libblas
和 liblapack
共享对象文件:
$ ls /usr/lib64 | grep libblas
libblas.so
libblas.so.3
libblas.so.3.5
libblas.so.3.5.0
$ ls /usr/lib64 | grep liblapack
liblapacke.so
liblapacke.so.3
liblapacke.so.3.5
liblapacke.so.3.5.0
liblapack.so
liblapack.so.3
liblapack.so.3.5
liblapack.so.3.5.0
我找到的最有希望的建议在这里 http://fossdev.blogspot.com/2015/12/scala-breeze-blas-lapack-on-linux.html , 这表明包括
JAVA_OPTS="- Dcom.github.fommil.netlib.BLAS=com.github.fommil.netlib.NativeRefBLAS"
在 sbt
脚本中。因此,我将这些选项附加到 build/mvn
脚本中的 _COMPILE_JVM_OPTS="..."
中,这也没有解决问题。
最后,我在网上找到的最后一点建议是将以下标志传递给 sbt
:
sbt -Dcom.github.fommil.netlib.BLAS=com.github.fommil.netlib.F2jBLAS \
-Dcom.github.fommil.netlib.LAPACK=com.github.fommil.netlib.F2jLAPACK \
-Dcom.github.fommil.netlib.ARPACK=com.github.fommil.netlib.F2jARPACK
问题再次出现。我的帖子中仅限于两个链接,但建议可以在 github 上 lildata 的“scaladatascience”存储库的 README.md 中找到。
有没有人遇到过这个问题并成功解决了?非常感谢任何和所有帮助或建议。
最佳答案
几个月过去了,但我又回到了这个问题,并且能够找到一个有效的解决方法(张贴在这里以防其他人遇到同样的问题)。
这归结为图书馆的优先权;所以,通过调用:
$ export LD_PRELOAD=/path/to/libopenblas.so
在启动 Spark 之前,一切都按预期进行。
看了之后想出了解决办法:
关于java - netlib-java 的“符号查找错误”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38133885/
我在理解 cpp netlib 文档时遇到一些问题。 member name type description headers vector Vecto
我认为我的问题真的很微不足道,但我还是无法让它发挥作用 std::string url="www.google.it"; boost::network::http::client client1_(_
类似于(但比)这个 unanswered question about headers in cpp-netlib HTTP server side 的问题。 这是在 Linux/Debian/Sid
我想在我的 Windows 上运行的 C++ 项目中使用 cpp-netlib 库。我已严格按照 http://cpp-netlib.github.com/getting_started.html 下
我想将库 cpp-netlib 用于 C++ 项目。因此,我在自制软件的帮助下安装了 boost 库(操作系统是 Mac OS X 10.8)。然后我从项目主页下载了cpp-netlib,使用cmak
是否有可能通过 cpp-netlib 获得接受的连接?并像普通 TCP Boost.asio 套接字一样使用它? 最佳答案 boost::network::http::impl::http_async
我想知道是否有可能获得 0.9.1 版 cpp-netlib 中现在存在的 Windows 静态库(x86 和 x64)的二进制文件? 坦率地说,对我来说在 Windows 上编译它是一件痛苦的事情。
进程文件: Netlib or Netlib.exe 进程名称: Crater-A Trojan/Worm 进程类别:存在安全风险的进程 英文描述: Netlib.exe is a proc
// Copyright 2009 (c) Tarro, Inc. // Copyright 2009 (c) Dean Michael Berris // Distributed under th
我在 Visual Studio 2010 中使用 cpp-netlib-0.9.4。我有一个 make_header 函数,如下所示: http::client::request* Interfac
我设法安装并运行了 boost,我还部分地编译了 cpp-netlib 的示例代码,但我陷入了这个编译错误: obj\Debug\main.o||In function 'ZN5boost7netwo
我正在尝试使用 cppnetlib,甚至是 boost asio 库进行连接,以执行简单的 url 获取并下拉生成的页面。 我已经让它与 http 一起工作,甚至 https 使用 cppnetlib
我正在尝试使用 boost 和 cpp-netlib。 cpp-netlib 的静态库大约是40m(发行版),即使链接到一个小的helloworld 也可能非常慢。所以我想在开发时尝试动态dll+ i
Spark 的 MLLib 指出 https://github.com/fommil/netlib-java是 dependency . 但是,这个 repo 已从 github 中删除(上面的链接已
背景与问题 我在运行 Fedora 23 的机器上运行 Spark 的 MLLib 中的示例时遇到了一些麻烦。我根据 Spark 文档使用以下选项构建了 Spark 1.6.2: build/mvn
我最近开始学习 cpp-netlib 并且正在测试一个 netlibs 示例程序 #include #include int main() { using namespace boost:
我正在考虑将 cpp netlib 用于新项目。所有示例都显示了以阻塞方式读取响应正文: client::response response_ = client_.get(request_); std
我正在尝试对我的非工作 apache spark 和 netlib 设置进行故障排除,但我不知道下一步该怎么做。 这里有一些信息: Spark 1.3.1(但也尝试过 1.5.1) 具有 3 个节点的
[已解决] 创建了从/usr/lib/lib/* 到/usr/lib* 的符号链接(symbolic link) [更新 3] 新版本: 好吧,我想我修复了一些东西 使用 find/-name "li
我正在使用 cpp-netlib (v0.11.0) 发送 HTTP 请求。 我想知道在发送 HTTP POST 请求时是否可以更改超时期限。 我正在运行一些单元测试,其中之一将 HTTP 请求发送到
我是一名优秀的程序员,十分优秀!