我有一个简单的Spark-SQL-Kafka程序,可从Kafka读取并写入HDFS。
对于检查点,我过去使用过HDFS和S3,它工作正常。
有没有一种方法可以使用MySQL进行检查点设置?
.option("checkpointLocation", ConfigLoader.getValue("checkpointPath"))
我们如何配置到MySQL表?
DataStreamReader kafkaDataStreamReader = sparkSession.readStream()
.format("kafka")
.option("kafka.bootstrap.servers", ConfigLoader.getValue("brokers"))
.option("group.id", ConfigLoader.getValue("groupId"))
.option("subscribe", ConfigLoader.getValue("topics"))
.option("failOnDataLoss", false);
Dataset<Row> rawDataSet = kafkaDataStreamReader.load();
rawDataSet.createOrReplaceTempView("rawEventView");
sqlCtx.sql("select * from rawEventView")
.writeStream()
.partitionBy(JavaConversions.asScalaBuffer(Arrays.asList(("date_year,date_month,date_day,date_hour,date_minute").split(","))))
.format("csv")
.option("header", "true")
.option("compression","gzip")
.option("delimiter", "~")
.option("checkpointLocation", ConfigLoader.getValue("checkpointPath"))
.option("path", ConfigLoader.getValue("recordsPath"))
.outputMode(OutputMode.Append())
.trigger(ProcessingTime.create(Integer.parseInt(ConfigLoader.getValue("kafkaProcessingTimeInSeconds")), TimeUnit.SECONDS))
.start()
.awaitTermination();