我的应用程序有一个严重的用例。
在第一部分中,我正在处理从kafka
出来的数据日志以构建连接会话(spark-streaming
)。
这些会话checkpoint
- 编辑并保留in-memory
(mapWithState()
)以进行进一步的实时处理,即应用程序的第二部分。
我想要添加到应用程序的批处理分支出现问题。 其目的与前面提到的第一部分相同,即构建会话 - 但这一次,基于目录中的日志文件。
AIM:我希望能够在批处理目录中获取文件后立即自动暂停我的实时处理, 处理它,将新计算的会话提供给应用程序(即到第二部分),然后接管它停止的实时处理。
你知道怎么做吗?
红色圆圈指出问题所在位置。如图所示,我有两个输入,一个来自kafka
用于实时处理,另一个来自特定目录用于批处理。
如上所示,第2部分即Process Sessions在两种处理方法之间共享,实际上我们必须保留in-memory
每个会话的数据。
批处理具有纠正循环的作用,因此强制在任何实时会话之前处理,这意味着rakesh提到的专有条款。