数据流:动态工作再平衡与融合
Dataflow: Dynamic Work Rebalancing vs Fusion
动态工作重新平衡将以最佳方式将工作分配给工作人员,其中融合将折叠执行图,从而使图表更小,这意味着涉及的工作人员更少。动态工作再平衡如何帮助融合,即使存在融合,工作分配也会以最佳方式发生?例如,如果 fused worker 由于在地图步骤中发生的扇出而苦苦挣扎。从逻辑上讲,应该有更多的工人参与,但图形是融合的。在这种情况下,动态工作再平衡还能发挥作用吗?
当你有一个融合的 FanOut 步骤时,建议在 FanOut 之后中断融合。您可以通过向管道添加一个操作来防止此类融合,该操作会强制 Cloud Dataflow 服务具体化您的中间 PCollection。例如,您可以在第一个 ParDo 之后插入一个 GroupByKey 并取消分组。 Cloud Dataflow 服务从不在聚合中融合 ParDo 操作。
您可以在以下 link 找到有关此主题的更多详细信息:
https://cloud.google.com/dataflow/docs/guides/deploying-a-pipeline#dynamic-work-rebalancing
编辑:
我相信数据流文档中有关融合和工作重新平衡的限制部分中的信息可能会有所帮助。 “......如果你的工作中有大量步骤被融合,你的工作中的中间 PCollection 就会更少,动态工作重新平衡将被限制在源物化 PCollection 中的元素数量。”希望有帮助
即使图形被融合,动态再平衡也应该起作用。动态再平衡意味着 master 要求 worker 拆分他们的工作并将这些工作分配给空闲的 worker。
融合是在逻辑上对流水线图的优化,而动态再平衡是在运行时的优化。你可以认为融合是试图减少计算步骤,而动态再平衡试图加速每个步骤的执行,无论该步骤是否足够或是否可以与其他步骤合并。
动态工作重新平衡将以最佳方式将工作分配给工作人员,其中融合将折叠执行图,从而使图表更小,这意味着涉及的工作人员更少。动态工作再平衡如何帮助融合,即使存在融合,工作分配也会以最佳方式发生?例如,如果 fused worker 由于在地图步骤中发生的扇出而苦苦挣扎。从逻辑上讲,应该有更多的工人参与,但图形是融合的。在这种情况下,动态工作再平衡还能发挥作用吗?
当你有一个融合的 FanOut 步骤时,建议在 FanOut 之后中断融合。您可以通过向管道添加一个操作来防止此类融合,该操作会强制 Cloud Dataflow 服务具体化您的中间 PCollection。例如,您可以在第一个 ParDo 之后插入一个 GroupByKey 并取消分组。 Cloud Dataflow 服务从不在聚合中融合 ParDo 操作。
您可以在以下 link 找到有关此主题的更多详细信息:
https://cloud.google.com/dataflow/docs/guides/deploying-a-pipeline#dynamic-work-rebalancing
编辑:
我相信数据流文档中有关融合和工作重新平衡的限制部分中的信息可能会有所帮助。 “......如果你的工作中有大量步骤被融合,你的工作中的中间 PCollection 就会更少,动态工作重新平衡将被限制在源物化 PCollection 中的元素数量。”希望有帮助
即使图形被融合,动态再平衡也应该起作用。动态再平衡意味着 master 要求 worker 拆分他们的工作并将这些工作分配给空闲的 worker。
融合是在逻辑上对流水线图的优化,而动态再平衡是在运行时的优化。你可以认为融合是试图减少计算步骤,而动态再平衡试图加速每个步骤的执行,无论该步骤是否足够或是否可以与其他步骤合并。