【发布时间】:2021-09-22 22:43:57
【问题描述】:
我意识到 Databricks 集群有超时,这意味着 N 分钟后它将关闭集群。这是一个示例。
尽管这个功能很好,但它并不是我们所需要的。我们的团队在工作日的上午 8 点到下午 6 点工作。我们希望集群在早上 8 点自动启动,在工作时间保持“始终开启”,然后在下午 6 点之后超时。有意义吗?
问:这可能吗?
【问题讨论】:
标签: azure-databricks
我意识到 Databricks 集群有超时,这意味着 N 分钟后它将关闭集群。这是一个示例。
尽管这个功能很好,但它并不是我们所需要的。我们的团队在工作日的上午 8 点到下午 6 点工作。我们希望集群在早上 8 点自动启动,在工作时间保持“始终开启”,然后在下午 6 点之后超时。有意义吗?
问:这可能吗?
【问题讨论】:
标签: azure-databricks
是的,可以根据您的团队在工作日上午 8 点到下午 6 点使用 Azure 自动化来启动数据块集群。
要在上午 8 点开始,您可以使用 Azure 自动化中的 PowerShell Runbook 按照预定时间启动集群,如下所示:
PowerShell Runbook 应如下所示:
$accessToken = "<Personal_Access_Token>"
$apiUrl = "<Azure_Databricks_Endpoint_URL>"
Set-DatabricksEnvironment -AccessToken $accessToken -ApiRootUrl $apiUrl
Start-DatabricksCluster -ClusterID "<Cluster_ID>"
要在下午 6 点停止,您可以设置属性在 600 分钟不活动后终止。
注意:如果您的营业时间(上午 8 点到下午 6 点,这意味着 10 小时 x 60 分钟),您可以设置属性在 600 分钟不活动后终止,如下所示:
此Tutorial: Start Azure Databricks clusters during business hours 将引导您创建 PowerShell 工作流运行手册,以便在 Azure 自动化的工作时间内启动 Azure Databricks 集群。
【讨论】:
【讨论】:
您可以通过在 existing cluster 上安排一些小作业来完成 Databricks 中的所有操作。在这种情况下,如果集群停止,那么它将启动以执行作业,并将一直保持到自动终止功能启动(我建议使用 65-70 分钟作为自动终止设置来平衡费用)。您可以使用类似的东西创建一个笔记本
display(spark.range(1))
并安排它在选定的集群上执行。要在工作时间内保持集群运行,您需要安排作业定期运行。这可以通过以下 cron 表达式来完成(参见 Quartz docs for reference):
* 0 8-17 * * MON-FRI
附:真的,应该是* 55 7-16 * * MON-FRI,在早上 8 点前 5 分钟开始。
【讨论】: