我正在使用 powershell 脚本部署一些 Databricks 集群,该脚本采用带有预定义集群模板的输入 json 文件,例如:
{
"cluster_name": "test1",
"max_retries": 1,
"spark_version": "5.3.x-scala2.11",
"timeout_seconds": 3600,
"autotermination_minutes": 60,
"node_type_id": "Standard_DS3_v2",
"driver_node_type_id": "Standard_DS3_v2",
"spark_env_vars": {
"PYSPARK_PYTHON": "/databricks/python3/bin/python3"
},
"spark_conf": {
"spark.databricks.delta.preview.enabled": "true"
},
"autoscale": {
"max_workers": 4,
"min_workers": 2
}
}
但是,我想为他们预先分配一些数据 block 权限组。我可以使用这样的集群模板来做到这一点吗?我找不到任何允许我指定这些组的属性。
我可以转到手动分配权限的集群之一,并将其导出为 json。但是,在这种情况下,模板中也缺少这些内容。
提前谢谢您!
最佳答案
接下来的解决方法非常麻烦,如果我知道另一种方法,我不会建议任何人采用这种方法。解决方法是创建一个 Web session ,登录,获取 CSRF token ,然后向 /acl/cluster/<cluster_id>
发出 POST 请求。带有来自 user_id
的 map s 到请求的权限。以下是使用 Python 为单个用户(或组)设置单个集群上的所有权限的示例:
import json
import requests
DB_HOST = "db-cluster"
DB_USER = "user"
DB_PASS = "pass"
def change_acl(user_id, cluster_id):
host = DB_HOST
username = DB_USER
password = DB_PASS
session = requests.Session()
login_request = session.post("https://{}/j_security_check".format(host),
data={"j_username": username, "j_password": password})
if login_request.status_code >= 400:
raise Exception("login failed : {}".format(login_request.content))
config_request = session.get("https://{}/config".format(host))
if config_request.status_code >= 400:
raise Exception("config request failed : {}".format(config_request.content))
config = json.loads(config_request.content)
csrf_token = config['csrfToken']
acl_request = session.post(
"https://{}/acl/cluster/{}".format(host, cluster_id),
headers={
"X-CSRF-Token": csrf_token,
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
},
data=json.dumps({
"type": "set",
'permissions': {user_id: ["*"]}
})
)
if acl_request.status_code >= 400:
raise Exception("acl request failed : {}".format(acl_request.content))
如果您找到更好的方法,请告诉我。最糟糕的是您必须使用用户名和密码而不是不记名 token 登录。第二个最糟糕的事情是,这可能会在没有任何通知的情况下中断。
我希望开发者能在不久的将来抽出时间来实现这个功能。
关于azure - 如何部署指定权限的Databricks集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956072/