【问题标题】:Single worker node stalls job单个工作节点停止工作
【发布时间】:2017-11-09 17:22:18
【问题描述】:

我有一个 Spark 提交作业 (PySpark),它 90% 的时间都可以正常工作,但有 10% 的时间它会在特定主机上停止。基本上,在其他主机上完成任务可能需要几秒钟,但有时它会在我可以通过 Spark UI 识别的主机上停止。在这种情况下,我最终会终止进程并重新运行。我想知道我的选择是什么来缓解这个问题。 我的基础设施是在 Amazon AWS 上运行的 EC2 实例上的独立 Spark 2.1 集群。我考虑过推测性执行,但我的进程写入 s3,并且有人建议我为最终坚持到 s3 的进程指定推测性执行是一个坏主意。欢迎提出任何建议。

【问题讨论】:

  • 我的回答只是猜测,不知道你的工作细节。您的问题描述得不够具体,也许您可​​以包含 Spark UI 的屏幕截图,显示您的确切含义,如何识别这个停滞的主机。什么样的任务在拖延。

标签: apache-spark pyspark


【解决方案1】:

如果您的数据有偏差,即您的某些分区包含大量数据,这会导致大量 GC 和 OOM,那么停滞在 90% 的情况并不少见。

在这种情况下重新分区数据,例如通过 RangePartitioner 将是一个解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-04
    • 1970-01-01
    • 2018-09-02
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 2012-06-14
    相关资源
    最近更新 更多