为什么streamingquerylistener中的queryprogressent日志在spark结构化流作业中丢失?

hmae6n7t  于 2021-05-29  发布在  Spark
关注(0)|答案(0)|浏览(306)

我正在运行多个spark结构化流媒体作业并使用 onQueryProgress 方法来自 QueryProgressMetricsListener 要记录的类 QueryProgressEvent 事件。通常,只要完成一个微批处理,它就可以很好地工作并打印日志。
但在我的一项工作中,我看到微批量正在进行,正如我在sparkui上看到的那样,但是这个日志没有被打印出来。我也看到下面的警告信息在这个工作。是什么原因造成的(我的期望是 onQueryProgress 将与每个新的微批次一起执行)

2020-06-19 04:09:14 WARN  org.apache.spark.executor.Executor.logWarning:66 - Managed memory leak detected; size = 16777216 bytes, TID = 14038

唯一的日志,我从 QueryProgressMetricsListenerevent : QueryStarted . 没有包含的日志 event : QueryProgress . 但是,下面的自定义日志会不断打印,并且批次id会不断增加。
要理解批处理是否真的得到了处理是令人困惑的。我的理解是,Spark过程批顺序和新的一批应该只出现在前一个完成。

rates.writeStream
    .trigger(Trigger.ProcessingTime(10000))
    .foreachBatch {
      (_, batchID: Long) =>
        logWarning(s"batchId is : ${batchID}")
        ProcessMain.processCassandra(spark)
    }
    .start()

显示批次id 444和443的spark ui快照

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题