我注意到火花流示例也有检查点的代码。我的问题是检查点有多重要。如果它具有容错能力,那么在这种流应用程序中发生故障的频率是多少?
答案 0 :(得分:2)
这完全取决于您的使用案例。假设你正在运行一个流媒体作业,它只是从Kafka读取数据并计算记录数。如果您的申请在一年左右后崩溃,您会怎么做?
或者,如果您只是在做一个流媒体应用程序,只需 Reads-Messages-From-Kafka>>> Tranform>>>插入数据库,我不必担心我的应用程序崩溃。即使它崩溃了,我也可以简单地恢复我的应用程序而不会丢失数据。
注意:Check-pointing是一个存储spark应用程序当前状态的过程。
随着容错的频率,您几乎不可能预测到中断。在公司中,
希望这会有所帮助。
答案 1 :(得分:1)
有两种情况:
当驱动程序被杀时,您将丢失所有数据和进度信息。检查点可以帮助您从这种情况中恢复应用程序。
失败是正常情况吗?当然!想象一下,这些机器中有大型集群,许多机器,许多组件。如果其中一个组件发生故障,那么您的应用程序也将失败。当与驱动程序的连接丢失时 - 您的应用程序失败。通过checkpoiting,您可以再次运行应用程序,它将恢复状态。