Google Cloud Dataproc Python客户端库无法正确获取集群子状态
解决Dataproc Python客户端库无法获取集群子状态的问题
问题原因
默认调用list_clusters时,Dataproc API使用BASIC视图返回数据,该视图不会包含子状态(substate)这类详细状态字段,所以你拿到的substate.name会是UNSPECIFIED。而gcloud dataproc clusters describe命令默认请求的是FULL视图,能获取完整的集群状态信息。
解决方案
在调用list_clusters时,显式指定使用FULL视图,确保API返回包含子状态的完整数据。
修改后的代码示例
- 导入
ClusterView枚举:
from google.cloud.dataproc_v1.types import ClusterView
- 修改
list_clusters的请求参数,添加view字段:
response = client.list_clusters( request={"project_id": project_id, "region": region, "view": ClusterView.FULL} )
- 保留你的打印逻辑即可正确输出子状态:
print(f"{cluster.cluster_name} - {cluster.status.state.name} - {cluster.status.substate.name}")
验证
修改后重新执行脚本,就能得到和gcloud命令一致的子状态结果(比如UNHEALTHY)。
内容的提问来源于stack exchange,提问作者Bajwa
相关产品推荐
相关产品推荐

