如何在 Spark Streaming 中自动重启失败的节点?

How to automatically restart a failed node in Spark Streaming?

我在集群上以独立模式使用 Spark。

我目前正在开发 Spark Streaming 应用程序。我已经为系统添加了检查点,以处理主进程突然失败的情况,我发现它运行良好。

我的问题是:如果整个节点崩溃(电源故障、硬件错误等)会发生什么,有没有办法自动识别集群中的故障节点,如果是的话,在同一台机器上重新启动它们(或重新启动它们在另一台机器上)

我看过 monit,但它似乎是 运行 在特定机器上并重新启动失败的进程,而我需要在节点上做同样的事情。明确一点,我不介意重启操作是否需要一点时间,但我更希望它自动发生

有什么办法吗?

提前致谢

Spark Standalone 对高可用性有一些支持,如in the official documentation所述,至少对主节点是这样。

当一个工作节点挂掉时,Spark 会在其他节点上调度作业,这或多或少也适用于 Spark Streaming。

除此之外,您还需要一些集群管理和监控工具。