Apache spark 火花流->;DStream.checkpoint与SparkStreaming.checkpoint

Apache spark 火花流->;DStream.checkpoint与SparkStreaming.checkpoint,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我有Spark 1.4流媒体应用程序,它从Kafka读取数据,使用状态转换,批处理间隔为15秒 为了使用全状态转换,以及从驱动程序故障中恢复,我需要在流上下文上设置检查点 此外,在Spark 1.4文档中,他们建议将数据流检查点设置为批次间隔的5-10倍 所以我的问题是: 如果我只在spark streaming上下文上设置检查点,会发生什么?我想每个批次间隔都会检查数据流 如果我在流媒体上下文上设置检查点,以及从卡夫卡读取数据时设置: 数据流检查点(90秒) 元数据检查点的间隔是多少,数据检查

我有Spark 1.4流媒体应用程序,它从Kafka读取数据,使用状态转换,批处理间隔为15秒

为了使用全状态转换,以及从驱动程序故障中恢复,我需要在流上下文上设置检查点

此外,在Spark 1.4文档中,他们建议将数据流检查点设置为批次间隔的5-10倍

所以我的问题是:

如果我只在spark streaming上下文上设置检查点,会发生什么?我想每个批次间隔都会检查数据流

如果我在流媒体上下文上设置检查点,以及从卡夫卡读取数据时设置:

数据流检查点(90秒)

元数据检查点的间隔是多少,数据检查点的间隔是多少(意味着数据流)

多谢各位

我想每个批次间隔都会检查数据流

否,Spark将在每个批次间隔乘以常数时检查数据。这意味着,如果批处理间隔为15秒,则每15秒的倍数将检查一次数据。例如,在有状态流的
mapWithState
中,可以看到批处理间隔乘以10:

private[streaming] object InternalMapWithStateDStream {
  private val DEFAULT_CHECKPOINT_DURATION_MULTIPLIER = 10
}
元数据检查点的时间间隔是多少?检查点的时间间隔是多少 数据检查点(指数据流)

如果在
DStream
上将检查点持续时间设置为90秒,则这将是您的检查点持续时间,这意味着每90秒数据将被检查一次。您不能直接在
StreamingContext
上设置检查点持续时间,只需传递检查点目录即可。
checkpoint
的重载只需要一个
字符串

/**
 * Set the context to periodically checkpoint the DStream operations for driver
 * fault-tolerance.
 * @param directory HDFS-compatible directory where the checkpoint
 *        data will be reliably stored.
 *        Note that this must be a fault-tolerant file system like HDFS.
 */
def checkpoint(directory: String)
编辑 对于
updateStateByKey
,检查点时间似乎设置为批处理时间乘以
秒(10)/slideDuration

// Set the checkpoint interval to be slideDuration or 10 seconds,
// which ever is larger
if (mustCheckpoint && checkpointDuration == null) {
  checkpointDuration = slideDuration * math.ceil(Seconds(10) / slideDuration).toInt
  logInfo(s"Checkpoint interval automatically set to $checkpointDuration")
}

谢谢你的回答。你知道updateStateByKey trasnfromation的检查点间隔是多少吗?好的,那么对于我的15秒批处理间隔,检查点间隔是:15*math.celi(10/15)=15秒。你认为它是最佳的还是我应该考虑手动改变间隔(设置它更大)?@ SRDJANKITOVICIC,这实际上取决于你的工作,你有多少输入数据,多少工人节点处理等等。非常感谢你的回答。抱歉幼稚,但是,如果检查点持续时间是批次持续时间的倍数,而不是每个批次。。持续时间之间的批次会发生什么?