Spark Streaming Kinesis缺少记录

时间:2017-11-24 19:42:12

标签: apache-spark spark-streaming amazon-kinesis

我有一个火花流式传输作业,可以从多个kinesis流中读取,并在一个流式上下文中将它们结合在一起。

val streams = ingestionStreams.map(streamName => {
  KinesisInputDStream.builder.checkpointAppName(s"${jobName}_$streamName")
    .streamName(streamName)
    .streamingContext(ssc)
    .endpointUrl(endpointUrl)
    .regionName(regionName)
    .initialPositionInStream(InitialPositionInStream.TRIM_HORIZON)
    .checkpointInterval(kinesisCheckpointInterval)
    .storageLevel(StorageLevel.MEMORY_ONLY)
    .buildWithMessageHandler(KinesisRecordHandler.recordHandler)
})

import spark.sqlContext.implicits._
ssc.union(streams)
  .checkpoint(batchInterval)
  .foreachRDD(jsonRdd => ...)

我在UI中的Spark Streaming标签中看到了正确的记录数。但是,foreachRDD处理的实际记录数量较少。

在执行程序日志中,我看到很多ProvisionedThroughputExceededException但是应该是良性的,因为KCL应该重试这些记录。

不幸的是,我没有看到日后处理丢失的记录。在哪里看下一个?

0 个答案:

没有答案