gpt4 book ai didi

google-cloud-dataflow - 缩放具有阻塞网络调用的 ParDo 转换

转载 作者:行者123 更新时间:2023-12-04 13:23:03 24 4
gpt4 key购买 nike

我有一个 ParDo 转换,我在其中进行阻塞 Web 服务调用以获取一些数据。调用需要一段时间才能返回(比如大约 1 分钟)。我观察到即使在相当大的 PCollection 上调用,此 ParDo 转换也不会扩展很多(我使用的是自动缩放模式)。也许这是因为缩放仅在 CPU/内存利用率很高时发生,在我的例子中,CPU/内存消耗可能很低,因为大部分时间都花在等待网络调用返回上。最终结果是,由于没有发生缩放,只有少量的 http 请求是并行发出的,并且作业需要更长的时间才能完成。关于如何改善情况的任何想法/建议?

谢谢

注意:我正在通过 Java SDK 1.9.1 使用 Google Dataflow,并且愿意迁移到 Apache Beam Java SDK

最佳答案

事实上,目前 Dataflow 会限制自动缩放,以防工作人员未充分利用 CPU。

这主要是为了避免您在管道中阻塞网络调用的情况,随着我们扩大规模,正在进行更多调用并且外部服务过载并变得更慢,因此 Dataflow 认为待完成的工作总量甚至更大,并且规模进一步扩大,形成一个正反馈循环。当前的行为对于这种情况也不是最佳的,但它至少没有这种灾难性的故障模式。

我们正在考虑采用不同的方法来实现两全其美,但目前这是一个已知问题,要解决它,您需要明确指定工作器的数量(从而禁用自动缩放),或者添加一些消耗 CPU 的代码(当然,非常难看)。

关于google-cloud-dataflow - 缩放具有阻塞网络调用的 ParDo 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46807450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com