针对Apache Spark使用Neo4j连接器的代码不适用于apache-submit

时间:2019-11-09 23:33:37

标签: scala apache-spark neo4j

我正在使用Neo4j connector for Apache Spark。当使用spark-shell运行代码时,它会在合理的时间内运行。当运行带有spark-submit的代码时,它以错误(心跳超时)结束。我正在docker容器中运行master,worker和Neo4j DB。这是一个大型数据集,具有3M多个不同的行,这是由4个节点类型(通过4个关系连接)得出的。

我已经尝试过具有32Gb RAM的AWS EC2实例。我试图调整超时和火花中的内存。

代码:

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

我期望在32Gb RAM机器上在一分钟内通过spark-submit运行代码。可以使用spark-shell来实现这个时间。

0 个答案:

没有答案