当前位置: 首页 > 知识库问答 >
问题:

重新调整Flink上的水印

毛越
2023-03-14

我认为水印可以通过两种方式进行调整:

  • 通过数据源上的SourceContext.emitWatermark()发出它们
  • 通过将水印策略连接到DataSourceStream

如果我在datasource操作符之后连接一个新的水印策略,第一个水印会被最新的水印策略替换吗?

本质上,我处于一种无法控制源事件/数据源的情况,但我需要稍后调整水印

共有1个答案

沃学
2023-03-14

您可以在Flink管道中的任何点添加水印策略。下游水印生成器将吃掉任何传入的水印——它发出的唯一水印将是它生成的水印。此外,源不一定要生成水印(尽管它更好)。

 类似资料:
  • 在Flink中,我发现了2种设置水印的方法, 第一个是 第二个是 我想知道哪个最终会生效。

  • 我的目标是杀死Flink任务管理器,然后在Windows上重新启动它。这是刺激Flink中的错误所必需的,这样我就可以看到检查点的工作。我已经设法找到了任务管理器PID通过查找PID对它侦听的端口。所以杀死PID应该杀死taskManager,但是我找不到在windows上重启Flink taskManager的方法,因为taskManager脚本是一个外壳脚本。请帮助我在以下两个问题。 如何在W

  • 我们正在构建一个流处理管道,以使用Flink v1.11和事件时间特性来处理Kinesis消息。在定义源水印策略时,在官方留档中,我遇到了两个开箱即用的水印策略;forBoundedOutOfOrthy和forMonotonousTimestamps。但根据我对上述内容的理解,我认为这些不适合我的用法。以下是我的用法细节: 来自输入流的数据:(包含每分钟带有时间戳的数据) 现在,我想处理11:00

  • 我们正在构建一个流处理管道来处理/摄取Kafka消息。我们正在使用Flink v1.12.2。在定义源水印策略时,在官方留档中,我遇到了两种开箱即用的水印策略;forBoundedOutOfOrness和forMonotonousTimestamps。我确实浏览了javadoc,但并不完全理解何时以及为什么你应该使用一种策略而不是另一种策略。时间戳基于事件时间。谢谢。

  • 我在HA模式下配置了Flink,如下所述: 我想测试容错性,因此我做了以下工作: 设置具有2个JobManager和1个TaskManager的Flink群集 在任务管理器上启动流式处理作业 杀死活动的作业管理器(以模拟崩溃) 领导人选举如期举行 但注意到任务管理器正在重新连接到新的作业管理器。它只是每10秒尝试重新连接到前一个领导者 在此处粘贴任务管理器日志: 重新启动任务管理器没有帮助 重新启

  • 我试图了解Apache FLink中Windows和Watermark生成之间的依赖关系,我在下面的示例中出现错误: 这里的时间戳是一个长的,我们可以从Kafka源中检索到,应该是:a,4 C,8,其中C是类别,5是时间戳。 每当我发送事件时,数据流都会打印,但不会使用窗口打印这些事件(打印(“Windows”)。此外,如果我收到一个事件A,12,然后生成了一个水印(在10秒内),那么我有C,2,