You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从Notebook层面终止Azure Databricks集群

可行性结论

从Notebook层面终止Azure Databricks集群完全可实现,平台原生提供了对应的工具和API支持,无需跳转至集群管理控制台操作。

可行实现方案
  • 内置工具快速实现(无额外依赖)
    Databricks Notebook环境自带dbutils工具集,不需要额外配置鉴权、安装依赖,只要当前账号对集群有管理权限,直接在单元格运行命令即可终止集群:

    # 终止当前Notebook附着的集群
    dbutils.clusters.terminate()
    
    # 若要终止同工作区下其他集群,传入目标集群ID即可
    # dbutils.clusters.terminate("0213-xxxxxx-xxxxxx")
    

    这个是成本最低的实现方式,适合临时手动触发、或者简单流程收尾时自动终止集群的场景。

  • REST API灵活实现(适配复杂逻辑场景)
    如果需要在终止集群前加入自定义判断逻辑(比如校验所有任务跑完、输出文件落盘完成、资源占用低于阈值再触发终止),可以直接在Notebook里调用官方REST API实现,所有鉴权、环境参数都可以从内置上下文取,不需要硬编码密钥:

    import requests
    
    # 从运行时上下文自动获取环境信息,无需手动填写
    context = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
    workspace_url = spark.conf.get("spark.databricks.workspaceUrl")
    api_token = context.apiToken().get()
    target_cluster_id = spark.conf.get("spark.databricks.clusterUsageTags.clusterId")
    
    # 发送集群终止请求
    resp = requests.post(
        url=f"https://{workspace_url}/api/2.0/clusters/delete",
        headers={"Authorization": f"Bearer {api_token}"},
        json={"cluster_id": target_cluster_id}
    )
    resp.raise_for_status()
    
注意事项
  • 执行终止操作的账号必须拥有目标集群的CAN_MANAGE权限,仅拥有集群附着权限、运行权限的账号无法执行该操作,会直接返回权限错误。
  • 集群终止指令触发后,所有附着在该集群上的Notebook、运行中的作业、流式任务都会立刻中断,建议把终止逻辑放在整个任务流的最后一步,避免核心任务被中途打断。
  • 手动触发集群终止不会修改集群原有配置,包括自动终止规则、集群规格、权限配置等,下次重启集群时所有配置保持不变。

内容的提问来源于stack exchange,提问作者Splatt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:48:28