根据spark streaming文档,排队但未处理的dstream将在每个checkpointInterval之后写入checkpoint目录。
但同时有一个配置spark.streaming.receiver.writeAheadLog.enable = true 根据spark文档“从接收器接收的所有数据都写入配置检查点目录中的预写日志”
spark给出的每个选项有什么不同?
答案 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个滑动间隔的检查点间隔是一个很好的设置。”