来自Kafka的Spark 2.4.0结构化流式容错

时间:2019-03-07 09:19:17

标签: apache-spark apache-kafka spark-structured-streaming fault-tolerance

从kafka读取内容时,我对Spark结构化流中的容错有一些疑问。这来自《结构化流编程指南》:

  

万一发生故障或有意关闭时,您可以恢复上一个查询的先前进度和状态,并在中断的地方继续进行。这是使用检查点日志和预写日志完成的。

1)如何重新启动失败的查询?可以自动完成吗?

  

您可以使用查询点位置配置查询,该查询会将所有进度信息(即在每个触发器中处理的偏移量范围)和正在运行的聚合(例如快速示例中的字数)保存到检查点位置。此检查点位置必须是与HDFS兼容的文件系统中的路径,并且可以在启动查询时在DataStreamWriter中设置为选项。

2)如果您未指定检查点位置会怎样?是否选择默认位置或您没有容错保证?您可以指定单个节点的本地非hdfs文件系统的路径作为检查点位置吗?

1 个答案:

答案 0 :(得分:1)

您可以从streamingcontext.java中找到问题的答案 https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/streaming/StreamingContext.html

无CheckPoint位置-

如果我们未指定检查点的位置,那么我们将无法恢复故障。

默认CheckPoint位置

没有默认的检查点位置。我们需要指定。

非hdfs检查点位置

HDFS兼容目录,将可靠地存储检查点数据。 请注意,这必须是像HDFS这样的容错文件系统。因此无需指定本地检查点位置。