流数据流需要1-2秒才能在转换之间传递数据

时间:2017-09-08 15:19:44

标签: java google-cloud-dataflow apache-beam

我正在尝试使用2.0 / 1.0版本运行流式数据流, 我们的SLA不到100毫安,而且它正在传入消息 4次转换。

1)第一次转化小于10毫秒。

2)第二次转换正在处理bigtablet和一些侧输入少于5 mb的数据,并且小于30-40毫秒。

3)第三次转换很重要 - >

  

第三次转换有三个侧输入2小于5 mb   第三个包含决策树模型文件(77),大约127 mb。

     

我使用JPMML-Convertor库进行预测,使用决策树模型文件,第一次需要400毫秒,单词需要30-40毫米。

     

为了避免前400毫米我制作了一个静态变量并为其分配了侧输入数据,这就解决了这个问题。

第三次转换中的所有处理逻辑大约需要50毫安。

但是消息从第二次转换(发射后)到第四次转换所需的时间大约为1-2秒。

我不明白问题是什么,因为我在日志中没有看到任何警告或错误消息。

在数据流UI中如果我选择第三个转换,我可以看到第二个转换已经发出了消息,但第三个转换没有收到该消息。

可能正在准备新实例,因为我看到我在startBundle方法中为单一方法打印了很多日志。

我有时会看到以下警告:

  

无法从网络接口找到可用的硬件地址;使用随机字节:7b:e5:7f:8a:22:9c:fc:6a

我使用以下配置:

  

工人机器类型:n1-standard-4

     

workerCacheMemoryMB:3072

     

我尝试了两个数据流1.x / 2.x版本。

对此的任何建议都会非常有用。

如果您需要更多详细信息,请发表评论。

感谢。

0 个答案:

没有答案