Logging 失败的spark作业不会留下任何历史记录
当我使用spark submit时,所有成功完成的作业都会留下大量的历史记录。当作业失败时,所有日志似乎都会丢失。从历史链接中,您可以看到 找不到应用程序\u 1444757668999\u 0004 从应用程序链接中,您可以看到日志链接,但它们会导致 java.lang.Exception:未知容器。容器尚未启动或已完成,或者根本不属于此节点 我唯一的线索是在nohup.out中,因为我在nohup下运行了spark submit。该日志表明执行者开始消亡 错误YarnScheduler:丢失执行器4Logging 失败的spark作业不会留下任何历史记录,logging,apache-spark,yarn,Logging,Apache Spark,Yarn,当我使用spark submit时,所有成功完成的作业都会留下大量的历史记录。当作业失败时,所有日志似乎都会丢失。从历史链接中,您可以看到 找不到应用程序\u 1444757668999\u 0004 从应用程序链接中,您可以看到日志链接,但它们会导致 java.lang.Exception:未知容器。容器尚未启动或已完成,或者根本不属于此节点 我唯一的线索是在nohup.out中,因为我在nohup下运行了spark submit。该日志表明执行者开始消亡 错误YarnScheduler:丢失
我如何让Thread保持日志完整,以便进行调试?Spark submit提交的是应用程序而不是作业。您可能正在检查纱线中的应用程序历史记录。在应用程序启动失败的情况下,您自然不会在那里看到任何历史记录 您可以尝试在客户端模式下提交,这样它将是Spark作业的同一集群,但Spark驱动程序将在本地运行,您可以访问日志以检查启动失败的原因
如果应用程序中的特定spark作业失败,则应用程序提交不应显示任何错误,并且您将能够在Thread UI中看到所有应用程序信息。spark submit提交的应用程序不是作业。您可能正在检查纱线中的应用程序历史记录。在应用程序启动失败的情况下,您自然不会在那里看到任何历史记录 您可以尝试在客户端模式下提交,这样它将是Spark作业的同一集群,但Spark驱动程序将在本地运行,您可以访问日志以检查启动失败的原因
如果应用程序中的特定spark作业失败,则提交的应用程序不应显示任何错误,并且您将能够在Thread UI中查看所有应用程序信息。在
$spark\u HOME/logs/
中还存在类似全局的日志文件,同样适用于Thread。例如,驱动程序日志位于spark foo org.apache.spark.deploy.master.master-1-machine.out
。这些文件非常臃肿,但总比没有好。我使用的是EMR,但我没有看到您指出的这些目录。正确的解决方案仍然是找到如何让Spark history server在作业失败时保留历史记录。有人知道怎么做吗?$SPARK\u HOME/logs/
中也有类似全局的日志文件,也有类似于纱线的日志文件。例如,驱动程序日志位于spark foo org.apache.spark.deploy.master.master-1-machine.out
。这些文件非常臃肿,但总比没有好。我使用的是EMR,但我没有看到您指出的这些目录。正确的解决方案仍然是找到如何让Spark history server在作业失败时保留历史记录。有人知道怎么做吗?