Как правильно настроить нативный ARPACK для Spark 2.2.0
Я получаю следующее предупреждение при запуске задания 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, чтобы он указывал на путь к общей библиотеке следующим образом.
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 в матрицу, но он все равно выдает Cache. ПРЕДУПРЕЖДЕНИЕ. Есть ли какие-либо предложения, как решить эти 3 предупреждения?
Я скачал скомпилированную версию spark-2.2.0 со страницы загрузки spark.
1 ответ
После изучения я могу удалить эти предупреждения и использовать нативный 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 установлен правильно. [ОШИБКА] Ошибка выполнения команды.
[TRUNCATED]
[INFO] СБОЙ СТРОИТЕЛЬСТВА [INFO]
[INFO] Общее время: 02:38 мин (настенные часы) [INFO] Окончание: 2017-10-13T21:04:11+00:00 [INFO] Окончательная память: 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