Google 云数据流为管道提供内存提示

Google cloud dataflow provide memory hints to pipeline

我的管道在 CombineFn 中创建大型中间数组。当我 运行 有少量工人时,管道成功。当我增加工作人员数量时,由于在此步骤中工作人员出现 OOM 错误,管道失败。我不完全确定为什么会发生这种情况,但我最好的猜测是数据流低估了 add_input 步骤中所需的内存量并创建了太多的累加器。

有没有什么方法可以为管道提供提示,比如每个累加器需要 X MB 的内存?

我在 here 之前发布过这个问题。

我现在正在使用 Apache Beam Python SDK 2.7,但问题仍然存在。

我能够通过创建然后立即删除一个比我在 add_input 函数中的中间体大小稍大的数组来解决这个问题。在不知道 Google 的内部结构的情况下,很难说出为什么会起作用,如果我继续增加工作人员的数量,我可能会 运行 再次遇到同样的问题。但是,如果其他人 运行 遇到同样的问题,请尝试一下。