我有一个简单的Spark Structured Streaming应用程序,它从Kafka读取并写入HDFS。今天,该应用程序神秘地停止工作,没有任何改变或修改(它已经完美地工作了几个星期)。
到目前为止,我已经观察到以下内容:
尽管如此,HDFS还没有写入任何内容。代码段:
val inputData = spark
.readStream.format("kafka")
.option("kafka.bootstrap.servers", bootstrap_servers)
.option("subscribe", topic-name-here")
.option("startingOffsets", "latest")
.option("failOnDataLoss", "false").load()
inputData.toDF()
.repartition(10)
.writeStream.format("parquet")
.option("checkpointLocation", "hdfs://...")
.option("path", "hdfs://...")
.outputMode(OutputMode.Append())
.trigger(Trigger.ProcessingTime("60 seconds"))
.start()
为什么UI没有显示任何作业/任务的任何想法?
答案 0 :(得分:5)
对于任何面临同样问题的人:我找到了罪魁祸首:
我保存数据的HDFS目录中 _spark_metadata 中的数据已损坏。
解决方案是擦除该目录并重新启动重新创建目录的应用程序。在数据之后,数据开始流动。