我有一个批处理数据流作业,它从 Bigquery 读取一些列,将它们转换为 beam.Row 格式,然后并行地为每列应用 SqlTransform。我将工人数量设置在 1 到 5 之间。
我不知道为什么作业只启动一台虚拟机,CPU 利用率达到 80% 以上,然后停止虚拟机并打开另一台虚拟机。此模式会重复,直到执行最后一个 SqlTransform。 我尝试在转换为 beam.Row 后添加重新洗牌步骤以防止融合,但问题仍然存在。 我应该如何优化管道? [更新]:我怀疑当活动虚拟机 CPU 利用率达到 100% 时,吞吐量不足以触发并行创建新虚拟机。
虚拟机很可能因为运行状况不佳而被终止。