Apache Flink - 端到端测试如何终止输入源

问题描述 投票:1回答:1

我已经在批处理中使用了apache flink一段时间,但现在我们想将这个批处理作业转换为流式作业。我遇到的问题是如何运行端到端测试。

它是如何在批处理作业中工作的

使用批处理时,我们使用黄瓜创建了端到端测试。

  • 我们将填写我们读取的hbase表
  • 运行批处理作业
  • 等待它完成
  • 验证结果

流媒体工作中的问题

我们想做一些与流媒体工作类似的事情,除了流媒体工作没有真正完成。

所以:

  • 填写我们读取的消息队列
  • 运行流式传输作业。
  • 等待它完成(如何?)
  • 验证结果

我们可以在每次测试后等待5秒钟,并假设所有事情都已经过处理,但这会使一切都变慢。

题:

有什么方法或最佳实践在流式flink作业上运行端到端测试而不会在x秒后强制终止flink作业

integration-testing apache-flink flink-streaming end-to-end data-stream
1个回答
1
投票

大多数Flink DataStream源,如果它们从有限输入读取,将在它们到达结束时注入值为LONG.MAX_VALUE的水印,之后作业将被终止。

Flink training exercises说明了对Flink工作进行端到端测试的一种方法。我建议克隆github repo并查看测试是如何设置的。他们使用custom source and sink并重定向输入和输出以进行测试。

这个话题也在documentation中讨论过。

© www.soinside.com 2019 - 2024. All rights reserved.