调用Databricks Libraries API安装库提示集群已终止或不存在
问题现象
调用Libraries API执行库安装操作时,使用的请求地址为https:///api/2.0/libraries/install/,提交的请求体如下:
{ "cluster_id": "<CLUSTER_ID>", "libraries": [ { "pypi": { "package": "cryptography==3.4.7" } } ] }
已确认传入的cluster_id有效,对应集群当前处于运行状态,但接口返回如下错误响应:
{ "error_code": "INVALID_PARAMETER_VALUE", "message": "Cluster <CLUSTER_ID> is terminated or does not exist" }
常见产生原因
- API请求地址配置错误:当前填写的请求地址
https:///api/2.0/libraries/install/域名段为空(三个连续斜杠),请求没有发往目标集群所属的工作区服务端,服务端检索不到对应集群ID就会返回该错误。 - 鉴权信息与工作区不匹配:请求携带的访问令牌不属于目标集群所在的工作区,服务端仅能检索当前工作区下的集群资源,跨工作区的集群ID会被判定为不存在。
- 集群状态缓存不同步:极少数场景下云服务控制面的集群状态缓存未及时更新,前端控制台显示集群为运行中,但API服务侧读取到的状态仍为已终止。
- 鉴权缺失/无效:请求未携带合法鉴权信息,服务端无权限读取集群元数据时,也可能返回该误导性错误提示。
排查解决步骤
- 首先修正API请求地址:按照所属工作区的实例域名补全地址,正确格式为
https://<你的工作区实例域名>/api/2.0/libraries/install,去掉地址末尾多余的斜杠。例如工作区域名为adb-xxxx.azuredatabricks.net时,完整请求地址为https://adb-xxxx.azuredatabricks.net/api/2.0/libraries/install。 - 校验鉴权配置:确认请求头中携带的
Authorization: Bearer <个人访问令牌>,是在目标集群所属的工作区下生成的有效令牌,禁止跨工作区复用令牌。 - 校验集群ID有效性:直接调用集群查询接口
GET /api/2.0/clusters/get?cluster_id=<你的CLUSTER_ID>验证:如果该接口同样返回集群不存在,说明集群ID填写错误或者请求发错了工作区;如果该接口正常返回集群状态为RUNNING,再重试库安装接口。 - 修复状态缓存问题:如果上述校验都通过仍报错,先调用集群停止接口等待集群完全终止,再重新启动集群,等集群状态稳定为
RUNNING后重试库安装请求即可。
内容的提问来源于stack exchange,提问作者Sandy
相关产品推荐
相关产品推荐

