管理集群策略
预览
此功能已在公共预览.
集群策略限制为配置集群基于一组规则。策略规则限制用于创建集群的属性或属性值。集群策略具有acl,将其限制为特定用户和组的使用。
集群策略让你:
限制用户创建指定设置的集群。
简化用户界面,允许更多用户创建自己的集群(通过修复和隐藏一些值)。
通过限制每个集群的最大成本来控制成本(通过设置对每小时价格有贡献的属性的限制)。
有关集群策略和配置建议的介绍,请查看Databricks集群策略视频:
集群策略权限限制用户可以在中选择哪些策略政策下拉:
请注意
如果没有政策在工作区中创建,“策略”下拉框不显示。
只有admin用户可以创建、编辑和删除策略。管理员用户也可以访问所有的策略。
本文侧重于使用UI管理策略。你也可以使用集群策略API 2.0和权限API 2.0管理策略。
个人电脑策略
个人计算是Databricks管理的集群策略,默认情况下,在所有Databricks工作空间上可用。允许用户访问此策略可以使他们在Databricks中创建单机计算资源以供个人使用。
需求
集群策略要求优质及以上计划.
施行细则
在策略规则中可以表达以下类型的约束:
固定值与禁用的控制元素
固定值,控件隐藏在UI中(值在JSON视图中可见)
属性值限定为一组值(允许列表或阻止列表)
匹配给定正则表达式的属性值
数字属性限定在一定范围内
启用控件时UI使用的默认值
托管集群属性
集群策略支持所有集群属性由集群API 2.0.支持的限制的具体类型可能因字段而异(基于它们的类型和与集群表单UI元素的关系)。
此外,集群策略还支持以下功能合成属性:
“最大dbu小时”指标,这是集群每小时可以使用的最大DBUs。这个指标是在单个集群级别控制成本的直接方法。
对创建集群的源的限制:作业服务(作业集群)、集群UI、集群REST API(通用集群)。
定义集群策略
类中定义集群策略JSON策略定义,在创建集群策略时添加。
创建集群策略
可以使用集群策略UI或集群策略API 2.0.使用实例创建集群策略。
克隆现有集群策略
通过克隆已有的集群策略,可以创建新的集群策略。使用实例克隆集群策略。
点击计算在侧栏中。
单击政策选项卡。
选择需要克隆的策略。
点击克隆.
在下一页中,所有字段都预先填充了来自现有策略的值。更改要修改的字段的值,然后单击创建.
管理集群策略权限
根据定义,管理员拥有所有策略的权限。集群策略权限管理可通过集群策略界面或权限API 2.0.
通过界面编辑集群策略
可以使用集群策略UI或集群策略API 2.0.使用实例编辑集群策略。
点击计算在侧栏中。
单击集群政策选项卡。
选择要编辑的策略。
点击编辑.
在Definition选项卡中,编辑策略定义。
点击更新.
该任务指导系统管理员通过界面删除集群策略
删除集群策略可通过集群策略界面或集群策略API 2.0.使用实例删除集群策略。
点击计算在侧栏中。
单击集群政策选项卡。
选择需要删除的策略。
点击删除.
点击删除来确认。
集群策略族
创建集群策略时,可以选择使用策略族。策略族为常见计算用例提供预填充的策略规则。例如,有一个个人计算策略系列,您可以在其中基于个人计算策略构建自定义策略。
使用策略族时,策略的规则继承自策略族。选择策略族后,可以按原样创建策略,也可以选择添加规则或覆盖给定的规则。
集群策略定义
一个集群策略定义是用JSON表示的单个策略定义的集合。
本节:
策略定义
一个策略定义是地图之间定义属性的路径字符串和一个限制类型.每个属性只能有一个限制。路径特定于资源类型,并反映资源创建API属性名称。如果资源创建使用嵌套属性,路径将使用点连接嵌套属性名。使用策略创建集群时,策略定义中未定义的属性是无限制的。
接口政策{[路径:字符串]:PolicyElement}
策略元素
一个政策因素指定给定属性上受支持的一种限制类型,还可以指定默认值。可以指定默认值,而无需在策略中定义属性限制。
类型PolicyElement=FixedPolicy|ForbiddenPolicy|(LimitingPolicyBase&LimitingPolicy);类型LimitingPolicy=AllowlistPolicy|BlocklistPolicy|RegexPolicy|RangePolicy|UnlimitedPolicy;
介绍策略类型:
固定的政策
将值限制为指定的值。对于非数值和布尔值的属性值,属性值必须用字符串表示或转换为字符串。属性可选地隐藏在UI中隐藏的
标志存在并设置为真正的
.固定策略不能指定缺省值。
interface FixedPolicy{类型:“固定”;值:字符串|数字| boolean;隐藏吗?:布尔;}
限制策略:常用字段
在限制策略中,您可以指定两个附加字段:
defaultValue
-在UI中填充集群创建表单的值。isOptional
-对某个属性的限制策略使其成为必需。属性可选isOptional
字段为true。
interface LimitedPolicyBase {defaultValue?: string | number | boolean;isOptional吗?:布尔;}
块列表策略
不允许的值列表。由于值必须精确匹配,当属性在值的表示方式上过于宽松(例如允许前导和尾随空格)时,此策略可能无法按预期工作。
接口BlocklistPolicy{类型:“过滤清单”;值:(字符串|数量|布尔) [];}
政策范围
属性指定的范围内限制该值minValue
而且maxValue
属性。取值必须为十进制数。数值限制必须可表示为双浮点值。为了表示缺少特定的限制,可以省略其中之一minValue
,maxValue
.
interface RangePolicy{类型:“范围”;minValue吗?:数量;maxValue吗?:数量;}
集群策略属性路径
下表列出了支持的集群策略属性路径。
属性路径 |
类型 |
描述 |
---|---|---|
|
可选数量 |
隐藏时,从UI中移除最大工人编号字段。 |
|
可选数量 |
隐藏时,从UI中移除最小工人编号字段。 |
|
数量 |
值为0表示不自动终止。隐藏时,从UI中移除自动终止复选框和值输入。 |
|
字符串 |
控制AWS可用性( |
|
数量 |
AWS EBS卷的个数。 |
|
数量 |
AWS EBS卷的大小(GiB)。 |
|
字符串 |
AWS EBS卷的类型。 |
|
数量 |
控制放置在按需实例上的节点数量。 |
|
字符串 |
控制AWS实例配置文件。 |
|
数量 |
控制AWS现货实例的最高价格。 |
|
字符串 |
控制AWS分区ID。 |
|
字符串 |
日志文件的目标URL。 |
|
字符串 |
S3位置的Region。 |
|
S3、DBFS或NONE |
日志目的类型。 |
|
字符串 |
集群名称。 |
|
字符串 |
通过附加标签名来控制特定的标签值,例如: |
|
字符串 |
设置集群的安全特性。统一目录需要 |
|
字符串 |
Databricks Container Services映像基本身份验证的密码。 |
|
字符串 |
Databricks Container Services映像基本身份验证的用户名。 |
|
字符串 |
控制Databricks容器服务映像URL。隐藏时,从UI中删除Databricks Container Services部分。 |
|
可选的字符串 |
隐藏时,从UI中移除驱动程序节点类型选择。 |
|
布尔 |
隐藏时,删除启用自动缩放本地存储复选框。 |
|
布尔 |
设置为 |
|
字符串 |
|
|
字符串 |
控制工作节点使用的池 |
|
字符串 |
如果指定,则为驱动节点配置与工作节点不同的池。如果未指定,则继承 |
|
字符串 |
隐藏时,从UI中移除工作节点类型选择。 |
|
可选数量 |
隐藏时,从UI中移除工人编号规范。 |
|
字符串 |
凭据传递单用户访问的用户名。 |
|
可选的字符串 |
通过附加配置键名来控制特定的配置值。例如, |
|
可选的字符串 |
通过附加环境变量来控制特定的Spark环境变量值,例如: |
|
字符串 |
Spark映像版本名(通过API指定)。 |
|
字符串 |
|
集群策略虚拟属性路径
属性路径 |
类型 |
描述 |
---|---|---|
|
数量 |
计算属性,表示包括驱动程序节点在内的集群的DBU成本(在自动伸缩集群的情况下为最大值)。适用范围有限。 |
|
字符串 |
表示可以创建的集群类型:
允许或阻止从策略创建指定类型的集群。如果 |
数组属性
可以通过两种方式为数组属性指定策略:
对所有数组元素的通用限制。这些限制使用
*
策略路径中的通配符。特定索引处数组元素的特定限制。这些限制在路径中使用一个数字。
例如,对于数组属性ssh_public_keys
,则泛型路径为ssh_public_keys。*
具体路径有形式ssh_public_keys。< n >
,在那里< n >
是数组中的整数索引(从0开始)。可以结合通用限制和特定限制,在这种情况下,通用限制适用于没有特定限制的每个数组元素。每种情况下只适用一个策略限制。
数组策略的典型用例有:
要求包含特定的条目。例如:
{“ssh_public_keys.0”:{“类型”:“固定”,“价值”:“< required-key-1 >”},“ssh_public_keys.1”:{“类型”:“固定”,“价值”:“< required-key-2 >”}}
如果不指定键的顺序,就不能要求特定的键。
需要整个列表的固定值。例如:
{“ssh_public_keys.0”:{“类型”:“固定”,“价值”:“< required-key-1 >”},“ssh_public_keys *”。:{“类型”:“禁止”}}
完全禁止使用。
{“ssh_public_keys *”。:{“类型”:“禁止”}}
允许任何数量的条目,但只允许遵循特定的限制。例如:
{“ssh_public_keys *”。:{“类型”:“正则表达式”,“模式”:”。* <所需内容>。*”}}
如果init_scripts
路径,数组包含结构,根据用例可能需要处理其中的所有元素。例如,需要一组特定的初始化脚本,你可以使用以下模式:
{“init_scripts.0.s3.destination”:{“类型”:“固定”,“价值”:“s3: / / < s3-path >”},“init_scripts.0.s3.region”:{“类型”:“固定”,“价值”:“< s3-region >”},“init_scripts.1.dbfs.destination”:{“类型”:“固定”,“价值”:“dbfs: / < dbfs-path >”},“init_scripts * .s3.destination”。:{“类型”:“禁止”},“init_scripts * .dbfs.destination”。:{“类型”:“禁止”},“init_scripts * .file.destination”。:{“类型”:“禁止”},}
集群策略示例
一般集群策略
一种通用的集群策略,用于指导用户并限制某些功能,同时要求标记、限制最大实例数和强制超时。
{“spark_conf.spark.databricks.cluster.profile”:{“类型”:“固定”,“价值”:“singleNode”,“隐藏”:真正的},“instance_pool_id”:{“类型”:“禁止”,“隐藏”:真正的},“spark_version”:{“类型”:“正则表达式”,“模式”:“7 \ \ [0 - 9]+ \ \ .x-scala。*”},“node_type_id”:{“类型”:“allowlist”,“价值观”:[“i3.xlarge”,“i3.2xlarge”,“i3.4xlarge”),“defaultValue”:“i3.2xlarge”},“driver_node_type_id”:{“类型”:“固定”,“价值”:“i3.2xlarge”,“隐藏”:真正的},“autoscale.min_workers”:{“类型”:“固定”,“价值”:1,“隐藏”:真正的},“autoscale.max_workers”:{“类型”:“范围”,“执行”:25,“defaultValue”:5},“enable_elastic_disk”:{“类型”:“固定”,“价值”:真正的,“隐藏”:真正的},“autotermination_minutes”:{“类型”:“固定”,“价值”:30.,“隐藏”:真正的},“custom_tags.team”:{“类型”:“固定”,“价值”:“产品”}}
简单中型策略
允许用户在最小配置的情况下创建中型集群。创建时唯一需要的字段是集群名称;其余的都是固定和隐藏的。
{“instance_pool_id”:{“类型”:“禁止”,“隐藏”:真正的},“spark_conf.spark.databricks.cluster.profile”:{“类型”:“禁止”,“隐藏”:真正的},“autoscale.min_workers”:{“类型”:“固定”,“价值”:1,“隐藏”:真正的},“autoscale.max_workers”:{“类型”:“固定”,“价值”:10,“隐藏”:真正的},“autotermination_minutes”:{“类型”:“固定”,“价值”:60,“隐藏”:真正的},“node_type_id”:{“类型”:“固定”,“价值”:“i3.xlarge”,“隐藏”:真正的},“driver_node_type_id”:{“类型”:“固定”,“价值”:“i3.xlarge”,“隐藏”:真正的},“spark_version”:{“类型”:“固定”,“价值”:“7.3.x-scala2.12”,“隐藏”:真正的},“enable_elastic_disk”:{“类型”:“固定”,“价值”:假,“隐藏”:真正的},“custom_tags.team”:{“类型”:“固定”,“价值”:“产品”}}
工作政策
允许用户创建作业集群并使用集群运行作业。用户不能使用该策略创建通用集群。
{“cluster_type”:{“类型”:“固定”,“价值”:“工作”},“dbus_per_hour”:{“类型”:“范围”,“执行”:One hundred.},“instance_pool_id”:{“类型”:“禁止”,“隐藏”:真正的},“num_workers”:{“类型”:“范围”,“minValue”:1},“node_type_id”:{“类型”:“正则表达式”,“模式”:“[rmci] [3 - 5] [rnad] *。(主){0,1}xlarge”},“driver_node_type_id”:{“类型”:“正则表达式”,“模式”:“[rmci] [3 - 5] [rnad] *。(主){0,1}xlarge”},“spark_version”:{“类型”:“正则表达式”,“模式”:“7 \ \ [0 - 9]+ \ \ .x-scala。*”},“custom_tags.team”:{“类型”:“固定”,“价值”:“产品”}}
外部转移政策
允许用户创建带有管理员定义的已附加metastore的集群。这对于允许用户创建自己的集群而不需要额外配置非常有用。
{“spark_conf.spark.hadoop.javax.jdo.option.ConnectionURL”:{“类型”:“固定”,“价值”:" jdbc::状态"置疑" / / < jdbc url >”},“spark_conf.spark.hadoop.javax.jdo.option.ConnectionDriverName”:{“类型”:“固定”,“价值”:“com.microsoft.sqlserver.jdbc.SQLServerDriver”},“spark_conf.spark.databricks.delta.preview.enabled”:{“类型”:“固定”,“价值”:“真正的”},“spark_conf.spark.hadoop.javax.jdo.option.ConnectionUserName”:{“类型”:“固定”,“价值”:“< metastore-user >”},“spark_conf.spark.hadoop.javax.jdo.option.ConnectionPassword”:{“类型”:“固定”,“价值”:“< metastore-password >”}}