无论如何,我可以对数据流作业使用抢占式实例吗?



很明显,抢占式实例比非抢占式实例便宜。每天有 400-500 个数据流作业在我的组织项目中运行。其中有些工作对时间敏感,而另一些则不然。那么有什么方法可以将抢占式实例用于非时间限制作业,这将减少我整体管道执行的成本。目前,我正在使用以下指定的配置运行数据流作业。

options.setTempLocation("gs://temp/");
options.setRunner(DataflowRunner.class);
options.setTemplateLocation("gs://temp-location/");
options.setWorkerMachineType("n1-standard-4");
options.setMaxNumWorkers(20);
options.setWorkerCacheMb(2000);

我无法找到任何具有抢占式实例设置的管道选项。

是的,可以通过云数据流(文档(中的灵活资源调度来实现。请注意,需要考虑一些事项:

  • 延迟执行:作业已计划且不会立即执行(可以看到数据流作业的新QUEUED状态(。当资源在六小时内可用时,它们会机会运行。这使得 FlexRS 适合降低非时间关键型工作负载的成本。此外,请务必在发送作业之前验证代码。
  • 批处理作业:
  • 截至目前,它仅接受批处理作业,并且需要启用自动缩放

    无法设置自动缩放算法 = 无

  • 数据流随机播放:需要启用它。如果是这样,则不会在附加到 VM 的永久磁盘上存储任何数据。这样,当发生抢占并重新声明资源时,无需重新分发数据。
  • 地域
  • 根据上项,只能选择支持数据流洗牌的地域。在此处列出,新区域的开通将在发行说明中公布。截至目前,区域会自动在区域内选择。
  • 计算机类型:FlexRS 当前支持n1-standard-2(默认(和n1-highmem-16
  • SDK:Java 或 Python 需要2.12.0或更高版本。
  • 配额
  • :配额是预先保留的(即排队的作业也会消耗配额(。

为了运行它,请使用--flexRSGoal=COST_OPTIMIZED并确保考虑到其余参数符合 FlexRS 需求。

统一折扣率应用于 FlexRS 作业,您可以在以下链接中比较定价详细信息。

请注意,您可能会在非英语文档中看到 Beta 免责声明,但正如发行说明中所述,它已正式发布。

相关内容

最新更新