运行PySpark作业时,我收到以下警告:
17/10/06 18:27:16 WARN ARPACK:无法加载实现 来自:com.github.fommil.netlib.NativeSystemARPACK
17/10/06 18:27:16 WARN ARPACK:无法加载实现: com.github.fommil.netlib.NativeRefARPACK
我的代码是
mat = RowMatrix(tf_rdd_vec.cache())
svd = mat.computeSVD(num_topics, computeU=False)
我正在使用Ubuntu 16.04 EC2实例。我已将所有以下库安装到我的系统中。
sudo apt install libarpack2 Arpack++ libatlas-base-dev liblapacke-dev libblas-dev gfortran libblas-dev liblapack-dev libnetlib-java libgfortran3 libatlas3-base libopenblas-base
我已将LD_LIBRARY_PATH调整为指向共享的lib路径,如下所示。
export LD_LIBRARY_PATH=/usr/lib/
现在当我列出$ LD_LIBRARY_PATH目录时,它显示了以下 .so 文件
ubuntu:~$ ls $LD_LIBRARY_PATH/*.so | grep "pack\|blas"
/usr/lib/libarpack.so
/usr/lib/libblas.so
/usr/lib/libcblas.so
/usr/lib/libf77blas.so
/usr/lib/liblapack_atlas.so
/usr/lib/liblapacke.so
/usr/lib/liblapack.so
/usr/lib/libopenblasp-r0.2.18.so
/usr/lib/libopenblas.so
/usr/lib/libparpack.so
但是我仍然无法使用Native ARPACK实现。此外,我正在缓存RDD传递给矩阵但它仍然抛出缓存警告任何建议如何解决这3个警告?
我已经从spark下载页面下载了spark-2.2.0的编译版本。
答案 0 :(得分:4)
在探索之后,我可以通过以下方式删除这些警告并使用本机ARPACK。
解决方案是使用-Pnetlib-lgpl
参数重建spark。
以下是我在Ubuntu 16.04上的步骤
# Make sure you use the correct download link, from spark download section
wget https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0.tgz
tar -xpf spark-2.2.0.tgz
cd spark-2.2.0/
./dev/make-distribution.sh --name custom-spark --pip --tgz -Psparkr -Phadoop-2.7 -Pnetlib-lgpl
当我第一次通过抛出以下错误而失败时
找不到'R_HOME'。请指定'R_HOME'或确保R是 安装正确。 [ERROR]命令执行失败。
[TRUNCATED]
[INFO] BUILD FAILURE [INFO]
[INFO]总时间:02:38分钟(挂钟)[信息]完成于: 2017-10-13T21:04:11 + 00:00 [信息]最终记忆:59M / 843M
[错误]无法执行目标 org.codehaus.mojo:exec-maven-plugin:1.5.0:exec(sparkr-pkg)项目 spark-core_2.11:命令执行失败。流程退出了 错误:1(退出值:1) - > [帮助1] [错误]
所以我安装了R语言
sudo apt install r-base-core
然后我重新运行上面的构建命令并成功安装。
以下是构建此版本时的相关版本
$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.16.04.3-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
$ python --version
Python 2.7.12
$ R --version
R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"
Copyright (C) 2015 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
$ make --version
GNU Make 4.1
Built for x86_64-pc-linux-gnu