完成写入 S3 后,EMR 上的 Spark 步骤挂起为 "Running"
Spark step on EMR just hangs as "Running" after done writing to S3
运行 EMR 5.1.0 上的 PySpark 2 作业作为一个步骤。即使在脚本完成后将 _SUCCESS
文件写入 S3 并且 Spark UI 显示作业已完成,EMR 仍将步骤显示为 "Running"。我已经等了一个多小时,看看 Spark 是否只是试图清理自己,但该步骤从未显示为 "Completed"。日志中最后写的是:
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-aws
和 aws-java-sdk
罐子都无济于事。
我使用的是默认的 Spark 2.0 配置,所以我认为没有写入元数据等任何其他内容。此外,数据的大小似乎对这个问题没有影响。
如果您还没有关闭,您应该关闭您的 spark 上下文。
sc.stop()
此外,如果您正在通过浏览器观看 Spark Web UI,您应该关闭它,因为它有时会使 spark 上下文保持活动状态。我记得在 spark dev 邮件列表上看到过这个,但找不到它的 jira。
我们遇到了这个问题,并通过 运行 使用以下 spark-submit 选项在集群部署模式下的作业解决了这个问题:
spark-submit --deploy-mode cluster
这与以下情况有关:运行 在客户端模式下,驱动程序在主实例中运行,尽管 spark spark 上下文关闭,但 spark-submit 进程卡住了。这导致实例控制器不断轮询进程,因为它从未收到完成信号。 运行 使用上述选项的其中一个实例节点上的驱动程序似乎没有这个问题。希望这有帮助
运行 EMR 5.1.0 上的 PySpark 2 作业作为一个步骤。即使在脚本完成后将 _SUCCESS
文件写入 S3 并且 Spark UI 显示作业已完成,EMR 仍将步骤显示为 "Running"。我已经等了一个多小时,看看 Spark 是否只是试图清理自己,但该步骤从未显示为 "Completed"。日志中最后写的是:
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-aws
和 aws-java-sdk
罐子都无济于事。
我使用的是默认的 Spark 2.0 配置,所以我认为没有写入元数据等任何其他内容。此外,数据的大小似乎对这个问题没有影响。
如果您还没有关闭,您应该关闭您的 spark 上下文。
sc.stop()
此外,如果您正在通过浏览器观看 Spark Web UI,您应该关闭它,因为它有时会使 spark 上下文保持活动状态。我记得在 spark dev 邮件列表上看到过这个,但找不到它的 jira。
我们遇到了这个问题,并通过 运行 使用以下 spark-submit 选项在集群部署模式下的作业解决了这个问题:
spark-submit --deploy-mode cluster
这与以下情况有关:运行 在客户端模式下,驱动程序在主实例中运行,尽管 spark spark 上下文关闭,但 spark-submit 进程卡住了。这导致实例控制器不断轮询进程,因为它从未收到完成信号。 运行 使用上述选项的其中一个实例节点上的驱动程序似乎没有这个问题。希望这有帮助