我们遇到了导致执行者不断失败的错误。从表面上看,应用程序仍然看起来很健康,并且在此类事件发生后应用程序崩溃需要3天时间。我们希望添加可用于在这种情况下提醒我们的监控。
我决定监控批处理已完成的事件:如果执行程序连续失败,则不应完成任何批处理。这具有跟踪批量备份时的额外好处。我通过注册SparkStreamingListener来实现这一点,每次调用onBatchCompleted时都会标记一个仪表。在测试它的功效时,我杀死了应用程序,同时保持驱动程序运行。令我惊讶的是,批次仍被报告为完成。
这是预期的行为还是错误?如果这是预期的行为,是否有人有任何替代方法来跟踪执行器何时连续失败/火花应用程序的整体运行状况?