【问题标题】:Spark step on EMR just hangs as "Running" after done writing to S3完成写入 S3 后,EMR 上的 Spark 步骤只是挂起为“正在运行”
【发布时间】:2017-04-02 19:17:16
【问题描述】:

在 EMR 5.1.0 上运行 PySpark 2 作业作为一个步骤。即使在将_SUCCESS 文件写入 S3 和 Spark UI 完成脚本后,显示作业已完成,EMR 仍将步骤显示为“正在运行”。我已经等了一个多小时,看看 Spark 是否只是试图清理自己,但该步骤从未显示为“已完成”。日志中最后写的是:

INFO MultipartUploadOutputStream: close closed:false s3://mybucket/some/path/_SUCCESS
INFO DefaultWriterContainer: Job job_201611181653_0000 committed.
INFO ContextCleaner: Cleaned accumulator 0

Spark 1.6 没有这个问题。我尝试了一堆不同的 hadoop-awsaws-java-sdk 罐子都无济于事。

我正在使用默认的 Spark 2.0 配置,因此我认为不会编写任何其他内容,例如元数据。此外,数据的大小似乎对这个问题没有影响。

【问题讨论】:

    标签: amazon-web-services apache-spark amazon-s3 pyspark apache-spark-2.0


    【解决方案1】:

    如果你还没有,你应该关闭你的火花上下文。

    sc.stop()
    

    另外,如果您正在通过浏览器观看 Spark Web UI,您应该关闭它,因为它有时会使 spark 上下文保持活动状态。我记得在 spark dev 邮件列表上看到过这个,但找不到它的 jira。

    【讨论】:

      【解决方案2】:

      我们遇到了这个问题,并通过使用以下 spark-submit 选项在集群部署模式下运行作业来解决它:

      spark-submit --deploy-mode cluster 
      

      这与在客户端模式下运行时驱动程序在主实例中运行有关,并且尽管火花火花上下文关闭,但火花提交过程却卡住了。这导致实例控制器不断轮询进程,因为它从未收到完成信号。使用上述选项在其中一个实例节点上运行驱动程序似乎没有这个问题。希望这会有所帮助

      【讨论】:

      • 在我的情况下,使用部署模式集群运行没有帮助。
      猜你喜欢
      • 1970-01-01
      • 2019-04-08
      • 2017-08-24
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2018-07-01
      • 2021-12-22
      • 1970-01-01
      相关资源
      最近更新 更多