gpt4 book ai didi

apache-spark - 在 EMR 集群上运行的 Spark 作业。 system.exit(0) 用于正常完成作业,但仍然 Step on EMR 失败

转载 作者:行者123 更新时间:2023-12-03 09:27:35 27 4
gpt4 key购买 nike

在 spark 作业中。如果找不到文件,我正在使用 system.exit(0)。它应该优雅地完成工作。在本地就顺利完成了。但是当我在 EMR 上运行时。步骤失败。

最佳答案

EMR 使用 YARN用于集群管理和启动 Spark 应用程序。因此,当您在 EMR 中使用 --deploy-mode: cluster 运行 Spark 应用程序时,Spark 应用程序代码不会在 JVM 中单独运行,而是由 ApplicationMaster 执行。类。

浏览 ApplicationMaster 代码可以解释当您尝试执行 System.exit() 时会发生什么。用户应用程序在 startUserApplication 中启动,然后在用户应用程序返回后调用 finish 方法。但是,当您调用 System.exit(0) 时,执行的是 a shutdown hook它看到您的代码没有成功完成,并将其标记为 EXIT_EARLY 失败。它也有这个有用的评论:

  // The default state of ApplicationMaster is failed if it is invoked by shut down hook.
// This behavior is different compared to 1.x version.
// If user application is exited ahead of time by calling System.exit(N), here mark
// this application as failed with EXIT_EARLY. For a good shutdown, user shouldn't call
// System.exit(0) to terminate the application.

关于apache-spark - 在 EMR 集群上运行的 Spark 作业。 system.exit(0) 用于正常完成作业,但仍然 Step on EMR 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39580449/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com