为什么我必须在火花作业之间不断重启火花服务?

时间:2017-08-05 21:01:04

标签: apache-spark pyspark spark-dataframe

我正在运行单个节点群集,并且我正在运行spark独立模式(即我没有使用yarn而不使用mesos)。

这是我的问题:我的工作非常简单,而且有效。然后我再次运行完全相同的工作,它只是挂了很长时间。我去了火花网页UI,我可以看到它在“正在运行的应用程序”下,我看到我有Alive Workers等等,一切似乎都很好。我看到“使用中的内存”总共为14.6 GB,使用了14.0 GB ....这也应该没问题。当我执行df -h时,磁盘使用率为70%。火花webUI报告我使用我使用4个核心中的3个...这也应该没问题。所以,我无法弄清问题是什么。

以下是有关我的机器的详细信息:

  • 4核
  • 16 GB
  • 使用pyspark版本1.6.1

...这就是我的spark-defaults.conf文件中的内容:

spark.driver.memory 3g
spark.history.ui.port=18081
spark.eventLog.enabled=true
spark.executor.memory=14g
spark.executor.cores=3
spark.executor.instances=1
spark.sql.broadcastTimeout = 9000
spark.memory.fraction = 0.8
#spark.default.parallelism=3
spark.task.maxFailures = 1

现在,在我重新启动spark-masterspark-worker后,突然一切正常。

为什么我必须在每一份工作之间重启?

2 个答案:

答案 0 :(得分:4)

你可以在工作结束时加上这个吗,

sc.stop

其中sc是您的SparkContext

如果这有帮助,请告诉我。欢呼声。

答案 1 :(得分:0)

当我做这两件事时,它会运行得非常好:

  • 关闭像sudo service hadoop-yarn-resourcemanager stop

  • 这样的hadoop资源管理器
  • spark.driver.memory从3g减少到2g