Spark-Kafka-检查点目录复制数据

时间:2019-02-15 11:17:25

标签: apache-kafka spark-structured-streaming spark-streaming-kafka

下面是我测试过的场景

  1. 我制作了200条记录,并创建了20个文件,每个文件有10条记录。
  2. (等待2分钟后),我再次产生了200条记录,并立即手动终止了该应用程序(使用yarn -kill)。这次仅创建了7个文件。
  3. 重新启动应用程序后,它创建了在步骤2中再次生成的20个文件。

在上述情况下,重复了7个文件中的数据。如何使用检查点控制此行为?

下面是我的代码:

 try{
  val kafkaOutput = result.writeStream
  .outputMode("append")
  .format("orc")
  .option("path", "/warehouse/test_duplicate/download/data1")
  .option("checkpointLocation", checkpoint_loc)
  .option("maxRecordsPerFile", 10)
  .trigger(Trigger.ProcessingTime("5 seconds"))
  .start()
  .awaitTermination() 

   result.checkpoint()

}catch {
        case e: Exception => e.printStackTrace

    }
finally
{
  println("**********Finally Called***********")
  result.checkpoint()
}

0 个答案:

没有答案