【发布时间】:2019-03-01 02:29:40
【问题描述】:
在我的场景中,我有几个数据集不时出现,我需要在我们的平台中摄取。摄取过程涉及几个转换步骤。其中之一是 Spark。特别是到目前为止,我使用的是 spark 结构化流。基础设施还涉及 kafka,spark 结构化流从中读取数据。
我想知道是否有一种方法可以检测到一段时间内没有其他内容可以从某个主题中消耗以决定停止工作。那就是我想在消耗该特定数据集然后停止它所需的时间内运行它。出于特定原因,我们决定不使用 spark 的批处理版本。
因此是否有任何超时或可以用来检测没有更多数据传入并且所有内容都已处理的东西。
谢谢
【问题讨论】:
-
Triger.Once的问题在于,它会在处理之前尝试一次加载集群中的所有数据,基本上相当于使用spark批处理模式。我们希望在处理小批量数据后立即提供结果
-
我不确定 kafkaConsumer.pollTimeoutMs 到底做了什么?
-
为什么要停止工作?是否要停止集群以节省资金?
-
(1) 是的钱,(2) 统计数据(管理层希望统计每个数据集需要多长时间才能被完全摄取,确定管道的每个步骤需要多长时间),(3) 调度问题:我们的管道是 3/4 蒸,1/4 批次。在启动关闭管道的后期批处理之前,我们要确保所有流式处理部分都结束了。我们可以将后期部分变成流媒体,但这需要做很多工作,我们现在不想做
-
@MaatDeamon 在这种情况下你最终做了什么?
标签: apache-spark apache-kafka spark-streaming spark-structured-streaming