Apache spark Spark streaming:调度时间超过处理时间

Apache spark Spark streaming:调度时间超过处理时间,apache-spark,spark-streaming,spark-dataframe,azure-eventhub,Apache Spark,Spark Streaming,Spark Dataframe,Azure Eventhub,我们在Spark 2.1中有一个从Azure EventHub(Spark-streaming-eventhubs_2.11:2.0.5)读取的流作业,批处理间隔为5秒。 我们看到平均处理时间约为3秒。然而,我们看到批次之间的时间间隔约为20秒。下面的日志显示批次的结束/开始。这导致整体处理落后。处理过程中没有错误 你知道是什么导致了日程安排的延误吗?YarnUI显示平均延迟为0秒。不确定批次之间的时间间隔为何延迟 17/07/21 23:38:06 WARN root: !!!!!!!!

我们在Spark 2.1中有一个从Azure EventHub(Spark-streaming-eventhubs_2.11:2.0.5)读取的流作业,批处理间隔为5秒。 我们看到平均处理时间约为3秒。然而,我们看到批次之间的时间间隔约为20秒。下面的日志显示批次的结束/开始。这导致整体处理落后。处理过程中没有错误

你知道是什么导致了日程安排的延误吗?YarnUI显示平均延迟为0秒。不确定批次之间的时间间隔为何延迟

17/07/21 23:38:06 WARN root: !!!!!!!!    Posted Batch count : 420  Time : 224800
17/07/21 23:38:06 WARN root: ----End of batch--------
17/07/21 23:38:25 WARN root: ----Start of batch--------
17/07/21 23:38:26 WARN root: df.rdd.partitions.size=50
17/07/21 23:38:26 WARN root: blockData.rdd.partitions.size=50
17/07/21 23:38:26 WARN root: finalData.rdd.partitions.size=50

[Stage 2590:=================================================>     (9 + 1) / 10]

17/07/21 23:38:28 WARN root: !!!!!!!!    Posted Batch count : 256  Time : 224805
17/07/21 23:38:28 WARN root: ----End of batch--------
17/07/21 23:38:47 WARN root: ----Start of batch--------
17/07/21 23:38:48 WARN root: df.rdd.partitions.size=50
17/07/21 23:38:48 WARN root: blockData.rdd.partitions.size=50
17/07/21 23:38:48 WARN root: finalData.rdd.partitions.size=50
简化的复制代码为:

 eventHubDStream.foreachRDD((rdd: RDD[Array[Byte]], time: Time) => {

val strRDD = rdd.map(w => new String(w))
val df = spark.read.schema(schema).json(rdd)
df.createOrReplaceTempView("table")
val filteredDf = spark.sql("SELECT * FROM table WHERE EventName='Start')
val count = filteredDf.count()

}

您能提供您为处理流而编写的代码吗?不看代码确实很难知道。你可以点击流媒体用户界面,看看什么工作花费了这么多时间,然后从那里往下钻。用代码片段更新了原始帖子。它的代码非常简单,可以进行简单的过滤。