数据流:动态工作重新平衡与融合

问题描述 投票:0回答:2

动态工作重新平衡将最佳地将工作分配给工作人员,其中融合将使执行图崩溃,从而图表将更小,意味着更少的工作人员参与。动态工作再平衡如何帮助融合,即使存在融合,工作的分配也会以最佳方式发生?例如,如果融合工人正在挣扎,因为让我们说在地图步骤中发生的扇出。从逻辑上讲,应该让更多的工人参与其中,但图表融合在一在这种情况下,动态工作再平衡是否仍然有效?

google-cloud-dataflow apache-beam
2个回答
1
投票

动态重新平衡应该可以工作,甚至图形融合。动态再平衡意味着大师要求工人分工并将这些工作分配给闲置工人。

Fusion是逻辑上对流水线图的优化,而动态重新平衡是运行时的优化。您可以认为融合正在尝试减少计算步骤,而动态重新平衡会尝试加速每个步骤的执行,无论该步骤是否足够或可以与其他步骤合并。


1
投票

当你有一个融合的FanOut步骤时,建议在FanOut之后打破融合。您可以通过向管道添加操作来阻止此类融合,从而迫使Cloud Dataflow服务实现您的中间PCollection。例如,您可以在第一个ParDo之后插入GroupByKey并取消组合。 Cloud Dataflow服务永远不会在聚合中融合ParDo操作。

您可以在以下链接中找到有关此主题的更多详细信息:

https://cloud.google.com/dataflow/docs/guides/deploying-a-pipeline#dynamic-work-rebalancing

编辑:

我相信关于融合和工作重新平衡的数据流文档的限制部分中的信息可能对此有所帮助。 “...如果你的工作中有大量的步骤被融合,你的工作中的中间PCollections就会减少,而动态工作重新平衡将被限制在源物化PCollection中的元素数量。”希望有所帮助

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