我们正在使用 Spark Streaming 创建一个实时流处理系统,该系统使用大量(数百万)分析模型应用于许多不同类型的传入度量数据流(超过 100000)中的 RDD。此流是原始流或转换流。每个RDD都要经过一个分析模型进行处理。由于我们不知道哪个 Spark 集群节点将处理来自不同流的哪些特定 RDD,因此我们需要使所有这些模型在每个 Spark 计算节点上都可用。这将在每个 spark 节点上产生巨大的开销。我们正在考虑使用内存数据网格在 Spark 计算节点上提供这些模型。这是正确的方法吗?
或者
我们是否应该避免一起使用 Spark 流,而只使用 Redis(带有 pub/sub)之类的内存数据网格来解决这个问题。在这种情况下,我们会将数据流式传输到包含特定模型的特定 Redis 节点。当然,我们将不得不做所有的分箱/窗口等。
请建议。