gpt4 book ai didi

java - 是否有类似 Spark 的 Kafka Streams 累加器?

转载 作者:行者123 更新时间:2023-12-02 01:54:53 25 4
gpt4 key购买 nike

Spark 有一个有用的 API,用于以线程安全的方式积累数据 https://spark.apache.org/docs/2.3.0/api/scala/index.html#org.apache.spark.util.AccumulatorV2并配有一些开箱即用的有用累加器,例如多头https://spark.apache.org/docs/2.3.0/api/scala/index.html#org.apache.spark.util.LongAccumulator

我通常使用累加器将调试、分析、监视和诊断连接到 Spark 作业中。我通常在运行 Spark 作业之前触发 Future 来定期打印统计信息(例如 TPS、直方图、计数、计时等)

到目前为止,我找不到任何与 Kafka Streams 类似的东西。有什么存在吗?我想这至少对于 Kafka 应用程序的每个实例都是可能的,但要跨多个实例进行此工作将需要创建一个中间主题。

最佳答案

Kafka Streams 在设计上避免了并发——如果累积不需要容错,您可以在内存中进行,并通过挂钟时间标点将其刷新。

如果需要容错,可以使用状态存储并按标点符号扫描整个存储以将其刷新。

这将为您提供任务级别的积累。不确定 Spark 的累加器详细工作原理,但如果它给你一个“全局” View ,我假设它需要通过网络发送数据,并且一个实例只能访问数据(或者可能是广播 - 而不是当然,如何保证广播情况的一致性)。类似地,您可以将数据发送到一个主题(具有 1 个分区),以将全局所有数据收集到一个位置。

关于java - 是否有类似 Spark 的 Kafka Streams 累加器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52455877/

25 4 0