Код с использованием коннектора Neo4j для Apache Spark не работает с apache-submit - PullRequest
0 голосов
/ 10 ноября 2019

Я использую Neo4j разъем для Apache Spark . При запуске кода с помощью spark-shell он работает в разумные сроки. Когда код запускается с помощью spark-submit, он завершается с ошибками (тайм-аут сердцебиения). Я управляю мастером, рабочими и Neo4j DB в докерных контейнерах. Это большой набор данных с более чем 3M разных строк, полученных в результате 4-х типов узлов, связанных 4-мя отношениями.

Я пробовал использовать экземпляры AWS EC2 с 32 ГБ ОЗУ. Я пытался настроить таймауты и память в спарк.

Код:

val sc:SparkContext = SparkContext.getOrCreate()

val neo = Neo4j(sc)

val rdd = neo.cypher("MATCH ... RETURN ...")
    .loadRowRdd
println(rdd.count())

Отправить команду:

/spark/bin/spark-submit \
  --class app.Main \
  --master spark://spark-master:7077 \
  --deploy-mode client \
  --conf spark.neo4j.bolt.url=$NEO4J_HOST \
  --conf spark.driver.memory=10g \
  --conf spark.executor.memory=5g \
  --conf spark.network.timeout=600s \
  /app/target/app.jar

Выполнение кода с помощью spark-submit через минутус машиной на 32 ГБ ОЗУ было бы то, что я ожидаю. Это время может быть достигнуто с помощью спарк-оболочки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...