Графические рамки Python: проблемы с установкой зависимостей - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь запустить простой пример Graphframes . У меня есть и Python 3.6.8, и Python 2.7.15, а также Apache Maven 3.6.0, Java 1.8.0, Apache Spark 2.4.4 и версия для запуска кода Scala 2.11.12.

Я получил этоошибка:

An error occurred while calling o58.loadClass.
: java.lang.ClassNotFoundException: org.graphframes.GraphFramePythonAPI

Я пытался привести это решение в движение, но застрял на шаге 2.

Я запустил pyspark --packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 и получил следующий вывод:

Python 2.7.15+ (default, Jul  9 2019, 16:51:35) 
[GCC 7.4.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Ivy Default Cache set to: /home/jessica/.ivy2/cache
The jars for the packages stored in: /home/jessica/.ivy2/jars
:: loading settings :: url = jar:file:/usr/local/spark/jars/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
graphframes#graphframes added as a dependency
:: resolving dependencies :: org.apache.spark#spark-submit-parent-1be543dc-eac1-4324-bef5-4bab70bd9c95;1.0
    confs: [default]
downloading file:/home/jessica/.m2/repository/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11.jar ..
    [SUCCESSFUL ] graphframes#graphframes;0.7.0-spark2.4-s_2.11!graphframes.jar (18ms)
downloading file:/home/jessica/.m2/repository/org/slf4j/slf4j-api/1.7.16/slf4j-api-1.7.16.jar ...
    [SUCCESSFUL ] org.slf4j#slf4j-api;1.7.16!slf4j-api.jar (13ms)
:: resolution report :: resolve 786773ms :: artifacts dl 67ms
    :: modules in use:
    graphframes#graphframes;0.7.0-spark2.4-s_2.11 from local-m2-cache in [default]
    org.slf4j#slf4j-api;1.7.16 from spark-list in [default]
    ---------------------------------------------------------------------
    |                  |            modules            ||   artifacts   |
    |       conf       | number| search|dwnlded|evicted|| number|dwnlded|
    ---------------------------------------------------------------------
    |      default     |   2   |   1   |   1   |   0   ||   2   |   2   |
    ---------------------------------------------------------------------

:: problems summary ::
:::: ERRORS
    Server access error at url https://repo1.maven.org/maven2/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11-sources.jar (java.net.ConnectException: Connection timed out (Connection timed out))

    Server access error at url https://dl.bintray.com/spark-packages/maven/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11-sources.jar (java.net.ConnectException: Connection timed out (Connection timed out))

    Server access error at url https://repo1.maven.org/maven2/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11-src.jar (java.net.ConnectException: Connection timed out (Connection timed out))

    Server access error at url https://dl.bintray.com/spark-packages/maven/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11-src.jar (java.net.ConnectException: Connection timed out (Connection timed out))

    Server access error at url https://repo1.maven.org/maven2/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11-javadoc.jar (java.net.ConnectException: Connection timed out (Connection timed out))

    Server access error at url https://dl.bintray.com/spark-packages/maven/graphframes/graphframes/0.7.0-spark2.4-s_2.11/graphframes-0.7.0-spark2.4-s_2.11-javadoc.jar (java.net.ConnectException: Connection timed out (Connection timed out))

    unknown resolver sbt-chain

    unknown resolver null


:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
:: retrieving :: org.apache.spark#spark-submit-parent-1a173e58-c356-43d7-9112-b06817ef3674
    confs: [default]
    2 artifacts copied, 0 already retrieved (411kB/27ms)
he19/10/25 10:39:01 WARN Utils: Your hostname, jessica-VirtualBox resolves to a loopback address: 127.0.1.1; using 10.0.2.15 instead (on interface enp0s3)
19/10/25 10:39:01 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address
lp19/10/25 10:39:02 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Exception in thread "main" java.nio.file.NoSuchFileException: /tmp/tmp6pP3C_/connection6206654157170594455.info
    at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
    at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
    at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
    at java.nio.file.Files.newByteChannel(Files.java:361)
    at java.nio.file.Files.createFile(Files.java:632)
    at java.nio.file.TempFileHelper.create(TempFileHelper.java:138)
    at java.nio.file.TempFileHelper.createTempFile(TempFileHelper.java:161)
    at java.nio.file.Files.createTempFile(Files.java:852)
    at org.apache.spark.api.python.PythonGatewayServer$.main(PythonGatewayServer.scala:70)
    at org.apache.spark.api.python.PythonGatewayServer.main(PythonGatewayServer.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)
    at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:845)
    at org.apache.spark.deploy.SparkSubmit.doRunMain$1(SparkSubmit.scala:161)
    at org.apache.spark.deploy.SparkSubmit.submit(SparkSubmit.scala:184)
    at org.apache.spark.deploy.SparkSubmit.doSubmit(SparkSubmit.scala:86)
    at org.apache.spark.deploy.SparkSubmit$$anon$2.doSubmit(SparkSubmit.scala:920)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:929)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

Само собой разумеется, что это не ожидаемый результат, все истекшие ссылки ведут к 404 с. Мой ПК находится за за прокси-сервером, но настройки прокси-сервера настраиваются в файлах настроек Maven, и я знаю, что они работают правильно.

Есть ли другие параметры прокси для изменения? Есть ли другой способ установить эти зависимости?

РЕДАКТИРОВАТЬ

Я изменил свой файл /usr/share/jupyter/kernels/python3/kernel.json на:

{
 "argv": [
  "/usr/bin/python3",
  "-m",
  "ipykernel_launcher",
  "-f",
  "{connection_file}"
 ],
 "env": {
  "PYSPARK_SUBMIT_ARGS": "--packages graphframes:graphframes:0.7.0-spark2.4-s_2.11 --master local[10] pyspark-shell"
 },
 "display_name": "Python 3",
 "language": "python"
}

, затем попытался запустить скрипт Python в блокноте Jupyter. Это не сработало. Фактически теперь это вызывает эту ошибку, как только я запускаю свой скрипт Python (после того, как он импортирует требуемый импорт, он падает)

EDIT 2

Я настроил свойFirefox и сам скачал файлы.

-rw-rw-r-- 1 jessica jessica   381110 Oct 22 12:17 graphframes-0.7.0-spark2.4-s_2.11.jar
-rw-rw-r-- 1 jessica jessica     2541 Oct 22 12:14 graphframes-0.7.0-spark2.4-s_2.11.pom

Затем я запустил mvn install:install-file -Dfile=graphframes-0.7.0-spark2.4-s_2.11.jar -DpomFile=graphframes-0.7.0-spark2.4-s_2.11.pom, и хотя эта процедура прошла успешно, я все еще не могу запустить свой скрипт (по той же причине). Однако в моем хранилище maven теперь есть папка graphframes, содержащая все необходимые файлы.

РЕДАКТИРОВАТЬ 3

Я удалил и переустановил Jupyter, ноутбук,graphframes, toree, iPython и добавили Anaconda - все для Python 2.7 и Python 3. Я не смог установить ядро ​​Apache Toree (v0.3.0) для Python / Pyspark (у меня есть SQL и Scala, по-видимому, ядро ​​Python / Pysparkбольше не поддерживается - решения для этого также приветствуются).

Моя переменная SPARK_HOME=~/spark/spark-2.2.0-bin-hadoop2.7 также была установлена, а также PYSPARK_DRIVER_PYTHON="jupyter" и PYSPARK_DRIVER_PYTHON_OPTS="notebook".

1 Ответ

0 голосов
/ 25 октября 2019

Я решил проблему, используя совет с этого сайта .

Короче говоря, поставьте банки прямо в $SPARK_HOME/jars

...