Apache spark 火花在运动流上运行时重新硬化
我正在尝试用spark处理运动流数据。我以2个碎片开始我的流。在我手动分割一个碎片之前,它工作正常。之后,当新数据到达时,我的程序崩溃 以下是错误消息:Apache spark 火花在运动流上运行时重新硬化,apache-spark,spark-streaming,amazon-kinesis,Apache Spark,Spark Streaming,Amazon Kinesis,我正在尝试用spark处理运动流数据。我以2个碎片开始我的流。在我手动分割一个碎片之前,它工作正常。之后,当新数据到达时,我的程序崩溃 以下是错误消息: ERROR ShutdownTask: Application exception. java.lang.IllegalArgumentException: Application didn't checkpoint at end of shard shardId-000000000001 我应该如何处理程序中一个封闭碎片的检查点 编辑:向
ERROR ShutdownTask: Application exception.
java.lang.IllegalArgumentException: Application didn't checkpoint at end of shard shardId-000000000001
我应该如何处理程序中一个封闭碎片的检查点
编辑:向这个问题添加示例代码(这对我来说也是非常相关的)
示例代码:
/* Create a streaming context */
def functionToCreateContext(): StreamingContext = {
val ssc = new StreamingContext(sc, Seconds(2) )
ssc.checkpoint(checkpointDirectory)
val kinesisStreams = KinesisUtils.createStream(ssc, appName, streamName, endpointUrl,awsRegion,InitialPositionInStream.LATEST,Seconds(1),StorageLevel.MEMORY_ONLY)
/* Do the processing */
kinesisStreams.foreachRDD(rdd => ...)
ssc
}
/* First, recover the context; otherwise, create a new context */
val ssc = StreamingContext.getOrCreate(checkpointDirectory,functionToCreateContext _ )
ssc.start()
ssc.awaitTermination()
请提供您的代码片段。@ErikSchmiegelow我实际上遇到了与OP完全相同的问题,因此我冒昧地在问题中添加了一些示例代码。我的情况的细节不同,因此这不一定是答案。但也许这是一个线索:我忽略了在
IRecordProcessor\shutdown
内部调用shutdownInput.getCheckpointer.checkpoint()
,这导致了上述异常。我已向spark提交了此错误: