Spark Streaming - 生产者完成后如何通知消费者?

时间:2016-11-12 11:25:15

标签: scala apache-kafka spark-streaming kafka-producer-api

一旦notify将所有数据发布到Consumer,是否可以Producer Kafka topic

有可能在多个分区中可以使用相同的数据(有一些唯一的字段),因此我需要对数据进行分组并进行一些计算。

我考虑过使用Sliding window,但问题是我们还不知道Producer是否已完成发布数据?

消息量为around 50K,如果我们的经纪人配置更好,Kafka能否在几秒钟内处理50K messages[Single partition]

目前,我们计划有多个分区来根据Default Partitioner分割数据。

有效处理此问题的方法吗?

更新

每十五分钟一次,生产者获取数据并开始将数据发布到Kafka主题,我确信这是批处理的用例,但这是我们当前的设计。

1 个答案:

答案 0 :(得分:1)

Spark Streaming不能那样工作。它的工作方式是在每个批处理间隔流入和处理的无限数据流。这意味着如果您想要发出逻辑“批处理结束”的信号,您需要发送一条消息,指示此批数据已经结束,允许您将处理过的消息发送到您想要的输出接收器。

您可以实现此目的的一种方法是使用有状态流,这些流可以跨批次聚合数据,并允许您在批处理间隔之间保持状态。