目前,我已将Spark Stream与Kafka集成在Java中,并能够聚合统计数据。但是,我无法找到将结果存储到Java对象的方法,因此我可以使用不同的方法/类传递此对象,而不将它们存储到数据库中。我花了很多时间在线搜索教程/示例,但所有这些都最终使用print()在控制台中显示结果。但是,我要做的是在用户调用rest-api端点时返回这些结果JSON字符串。
我是否有可能将这些结果存储在内存中并使用不同的方法传递它们,或者我需要先将它们存储到数据库中并根据需要从那里获取它们?
答案 0 :(得分:0)
如果我说得对,你想通过Rest API从Spark Streaming中消耗你的结果。
即使有一些方法可以直接实现这一点(例如使用Spark SQL / Thrift服务器),我会将这两个任务分开。否则,如果您的Spark Streaming进程失败,您的服务/ REST-API层也将失败。
因此,分离这两层有其优点。您不必被迫使用经典数据库。您可以实现一个服务,该服务实现/使用JCache并将Spark流程的结果发送给它。