我正在尝试使用spark结构化流来实现5分钟的批处理监控,其中从kafka读取并查找(1个大的和1个小的)差异静态数据集作为etl逻辑的一部分,并调用rest api将最终结果发送到外部应用程序(在kafka的数十亿条记录中,只有不到100条记录在etl之后将输出到rest api)。
如何在不重新启动整个流应用程序的情况下实现刷新静态查找(streamingquerylistener使用streamingquerymanager.addlistener方法来拥有我们自己的逻辑,通过streamingquery.addlistener刷新/重新创建静态df?或者使用持久化和取消持久化缓存?或者其他更好的想法?)注意:阅读了下面的文章,但不确定hbase是否是一个更好的选择,因为它是一个旧的。https://medium.com/@anchitsharma1994/hbase-查找-in-spark-streaming-acafe28cb0dc
一旦一个记录丰富了查找信息并应用了一些规则/条件,我们就需要开始跟踪它以发送更新,直到它通过restapi按照自定义逻辑完成事件的生命周期。因此,希望flatmapwithgroupstate实现有助于跟踪事件状态。请在此提出最佳选择。
在hdfs中使用管理组状态与使用hbase。请在支持团队对spark了解甚少的生产环境中,从操作和监控的Angular 提出最佳选择。如果我们使用hdfs进行状态维护,那么在restapi无法向最终用户/系统发送更新的情况下,如何保持事件状态跟踪?
暂无答案!
目前还没有任何答案,快来回答吧!