我有一个Spark 2.2结构化流媒体流,从内部部署系统到容器化的云火花集群,其中kafka接收数据,并且SSS维护许多查询,每10秒刷新一次磁盘。流上下文之外的外部会话无法访问查询控制台 - 接收器(因此CSV刷新);监控仪表板从另一个上下文运行spark sql以获取指标。
现在我只汇总自上次开始流媒体以来的数据。现在我需要永远聚合数据以及传入的流数据以提供(近)实时视图。这将意味着在数十亿条记录上运行一堆GROUP BY - 在内存中维护数百万个聚合行。
我的问题是关于Spark流式查询如何可以这样扩展:内存使用效率如何(我可能会使用32个工作者包含),这是管理(接近)实时传入数据视图的正确方法卡夫卡和SSS?