首页 > 解决方案 > 如果应用程序的两个实例同时运行,火花流是否会分配负载?

问题描述

我最近注意到,当我提交了两个流应用程序实例并且它们并行工作时,输入速率会发生某种变化。此图像来自其中一个应用程序,当时我杀死了另一个应用程序。输入速率增加。 在此处输入图像描述

我正在订阅 MQTT 消息代理以将数据发送到应用程序。这是否意味着负载在两个应用程序之间分配?

更多信息:应用程序处理数据后,将其写入 HBase,并且事务是幂等的,如果数据被写入两次,则不会发生任何事情。

标签: apache-sparkhbasespark-streamingmqtt

解决方案


有多种方法可以识别它。

如果您要维护基于时间戳的 hbase 单元数据版本,则可以检查该特定数据单元存在多少个时间戳版本。您可以通过 hbase shell 轻松检查这一点。 检查此以供参考

另一种方法是,您可以使用来自两个流的流式应用程序 ID 记录此数据。检查是否从两个流中插入相同的数据。


推荐阅读