Databricks Spot Instance交互式集群代码执行完成保障咨询
Databricks Spot实例在交互式集群中的执行保障问题
Databricks允许为工作节点使用Spot实例:
我们正考虑将Spot实例用于交互式集群,特此咨询:若Spot实例被云提供商收回,是否能保证代码无错误执行完成?我们可以接受执行延迟,但无法容忍执行错误。
官方文档仅提及:
Spot实例适用于因云提供商收回一个或多个Spot实例而导致执行时间延长也可接受的工作负载。
核心结论
不能保证代码无错误执行完成。
详细说明
当云提供商收回Spot实例时,该节点上正在运行的任务会被直接中断,这会引发对应代码执行失败。尽管Databricks会尝试把中断的任务重新调度到其他可用节点,但如果你的代码包含非幂等操作(比如未做原子性处理的数据写入、依赖节点本地状态的计算),重试过程中大概率会出现数据不一致或执行错误。
如果你的场景完全无法容忍执行错误,绝对不建议在交互式集群中使用Spot实例。交互式集群的任务大多是实时运行、依赖当前节点状态的,Spot实例的回收中断会直接触发执行异常,即便你能接受延迟,错误风险也无法彻底规避。
内容的提问来源于stack exchange,提问作者user3579222
相关产品推荐
相关产品推荐

