dstream.checkpoint(checkpointInterval)和spark.streaming.receiver.writeAheadLog.enable之间是否有链接

时间:2017-12-07 03:20:30

标签: spark-streaming

根据spark streaming文档,排队但未处理的dstream将在每个checkpointInterval之后写入checkpoint目录。

但同时有一个配置spark.streaming.receiver.writeAheadLog.enable = true 根据spark文档“从接收器接收的所有数据都写入配置检查点目录中的预写日志”

spark给出的每个选项有什么不同?

2 个答案:

答案 0 :(得分:0)

元数据检查点 - 不完整批次 - 其作业已排队但尚未完成的批次。这将保存有关尚未完成排队的批次的元数据,并且不会存储接收方接收的实际数据。

另一方面,如果启用,writeAheadLogs将存储接收器接收的实际数据。

答案 1 :(得分:0)

再次阅读https://spark.apache.org/docs/2.2.0/streaming-programming-guide.html

上的文档

“对于需要RDD检查点的状态转换,默认间隔是批处理间隔的倍数,至少为10秒。可以使用dstream.checkpoint(checkpointInterval)设置。通常,检查点间隔为5 - DStream的10个滑动间隔是一个很好的设置。“

所以dstream.checkpoint(checkpointInterval)适用于有状态的dstream,而writeahead日志适用于所有dstreams,并且它被设置为sparkcontext级别。

现在基于以上2个查询 1)如果启用了超前日志,那么dstream.checkpoint(checkpointInterval)语句是否有意义? 2)doc /

中提到的checkpointinterval与Sliding interval的链接是什么

“通常情况下,DStream的5-10个滑动间隔的检查点间隔是一个很好的设置。”