管理集群策略

预览

此功能已在公共预览

集群策略限制为配置集群基于一组规则。策略规则限制用于创建集群的属性或属性值。集群策略具有acl,将其限制为特定用户和组的使用。

集群策略让你:

  • 限制用户创建指定设置的集群。

  • 简化用户界面,允许更多用户创建自己的集群(通过修复和隐藏一些值)。

  • 通过限制每个集群的最大成本来控制成本(通过设置对每小时价格有贡献的属性的限制)。

有关集群策略和配置建议的介绍,请查看Databricks集群策略视频:

集群策略权限限制用户可以在中选择哪些策略政策下拉:

  • 拥有集群创建权限可以选择不受限制的策略并创建完全可配置的集群。

  • 具有集群创建权限和集群策略访问权限的用户可以选择不受限制的他们可以使用的政策和政策。

  • 只访问集群策略的用户可以选择他们可以访问的策略。

请注意

如果没有政策在工作区中创建,“策略”下拉框不显示。

只有admin用户可以创建、编辑和删除策略。管理员用户也可以访问所有的策略。

本文侧重于使用UI管理策略。你也可以使用集群策略API 2.0权限API 2.0管理策略。

个人电脑策略

个人计算是Databricks管理的集群策略,默认情况下,在所有Databricks工作空间上可用。允许用户访问此策略可以使他们在Databricks中创建单机计算资源以供个人使用。

管理员可以管理访问而且自定义策略规则以满足他们工作空间的需要。

需求

集群策略要求Databricks高级计划

施行细则

在策略规则中可以表达以下类型的约束:

  • 固定值与禁用的控制元素

  • 固定值,控件隐藏在UI中(值在JSON视图中可见)

  • 属性值限定为一组值(允许列表或阻止列表)

  • 匹配给定正则表达式的属性值

  • 数字属性限定在一定范围内

  • 启用控件时UI使用的默认值

托管集群属性

集群策略支持所有集群属性集群API 2.0.支持的限制的具体类型可能因字段而异(基于它们的类型和与集群表单UI元素的关系)。

此外,集群策略还支持以下功能合成属性

  • “最大dbu小时”指标,这是集群每小时可以使用的最大DBUs。这个指标是在单个集群级别控制成本的直接方法。

  • 对创建集群的源的限制:作业服务(作业集群)、集群UI、集群REST API(通用集群)。

非托管集群属性

集群策略中不能限制以下集群属性:

  • 库,由库API 2.0.一种变通方法是使用自定义容器或者一个init脚本

  • 每个用户创建的集群数量(总数或同时)。策略的作用域是单个集群,因此不了解用户创建的集群。

  • 集群权限(acl),由单独的API处理。

定义集群策略

类中定义集群策略JSON策略定义,在创建集群策略时添加。

创建集群策略

可以使用集群策略UI或集群策略API 2.0.使用实例创建集群策略。

  1. 点击计算图标计算在侧栏中。

  2. 单击政策选项卡。

  3. 点击创建集群策略

  4. 命名策略。策略名不区分大小写。

  5. 控件中的策略族(可选)家庭下拉。这决定了构建策略的模板。看到政策的家庭

  6. 输入一个描述政策。这有助于其他人了解策略的目的。

  7. 定义Tab,粘贴策略定义

  8. 点击创建

克隆现有集群策略

通过克隆已有的集群策略,可以创建新的集群策略。使用实例克隆集群策略。

  1. 点击计算图标计算在侧栏中。

  2. 单击政策选项卡。

  3. 选择需要克隆的策略。

  4. 点击克隆

  5. 在下一页中,所有字段都预先填充了来自现有策略的值。更改要修改的字段的值,然后单击创建

管理集群策略权限

根据定义,管理员拥有所有策略的权限。集群策略权限管理可通过集群策略界面或权限API 2.0

添加集群策略权限

使用实例增加集群策略权限。

  1. 点击计算图标计算在侧栏中。

  2. 单击政策选项卡。

  3. 选择要更新的策略。

  4. 单击权限选项卡。

  5. 的名字列中,选择一个主体。

    策略权限主体
  6. 许可列,选择许可

    政策允许的
  7. 点击添加

删除集群策略权限

使用实例删除集群策略权限。

  1. 点击计算图标计算在侧栏中。

  2. 单击政策选项卡。

  3. 选择要更新的策略。

  4. 单击权限选项卡。

  5. 单击删除图标权限行中的图标。

通过界面编辑集群策略

可以使用集群策略UI或集群策略API 2.0.使用实例编辑集群策略。

  1. 点击计算图标计算在侧栏中。

  2. 单击集群政策选项卡。

    集群策略标签图片
  3. 选择要编辑的策略。

  4. 点击编辑

  5. 在Definition选项卡中,编辑策略定义。

  6. 点击更新

该任务指导系统管理员通过界面删除集群策略

删除集群策略可通过集群策略界面或集群策略API 2.0.使用实例删除集群策略。

  1. 点击计算图标计算在侧栏中。

  2. 单击集群政策选项卡。

    选择“集群策略”选项卡
  3. 选择需要删除的策略。

  4. 点击删除

  5. 点击删除来确认。

集群策略族

创建集群策略时,可以选择使用策略族。策略族为常见计算用例提供预填充的策略规则。例如,有一个个人计算策略系列,您可以在其中基于个人计算策略构建自定义策略。

使用策略族时,策略的规则继承自策略族。选择策略族后,可以按原样创建策略,也可以选择添加规则或覆盖给定的规则。

使用策略族创建自定义策略

使用策略族自定义策略。

  1. 点击计算图标计算在侧栏中。

  2. 单击政策选项卡。

  3. 点击创建集群策略

  4. 命名策略。策略名不区分大小写。

  5. 控件中选择策略族家庭下拉。

  6. 定义选项卡上,单击编辑

  7. 出现一个模态,您可以在其中覆盖策略定义。在覆盖部分,添加更新后的定义,然后单击好吧

集群策略定义

一个集群策略定义是用JSON表示的单个策略定义的集合。

策略定义

一个策略定义是地图之间定义属性的路径字符串和一个限制类型.每个属性只能有一个限制。路径特定于资源类型,并反映资源创建API属性名称。如果资源创建使用嵌套属性,路径将使用点连接嵌套属性名。使用策略创建集群时,策略定义中未定义的属性是无限制的。

接口政策路径字符串]:PolicyElement

策略元素

一个政策因素指定给定属性上受支持的一种限制类型,还可以指定默认值。可以指定默认值,而无需在策略中定义属性限制。

类型PolicyElementFixedPolicy|ForbiddenPolicy|LimitingPolicyBaseLimitingPolicy);类型LimitingPolicyAllowlistPolicy|BlocklistPolicy|RegexPolicy|RangePolicy|UnlimitedPolicy

介绍策略类型:

固定的政策

将值限制为指定的值。对于非数值和布尔值的属性值,属性值必须用字符串表示或转换为字符串。属性可选地隐藏在UI中隐藏的标志存在并设置为真正的.固定策略不能指定缺省值。

interface FixedPolicy{类型:“固定”;值:字符串|数字| boolean;隐藏吗?:布尔;}
例子
“spark_version”“类型”“固定”“价值”“7.3.x-scala2.12”“隐藏”真正的

被禁止的政策

对于可选属性,禁止使用该属性。

接口ForbiddenPolicy类型“禁止”
例子

该策略禁止将池附加到集群。

“instance_pool_id”“类型”“禁止”

限制策略:常用字段

在限制策略中,您可以指定两个附加字段:

  • defaultValue-在UI中填充集群创建表单的值。

  • isOptional-对某个属性的限制策略使其成为必需。属性可选isOptional字段为true。

interface LimitedPolicyBase {defaultValue?: string | number | boolean;isOptional吗?:布尔;}
例子
“instance_pool_id”“类型”“无限”“isOptional”真正的“defaultValue”“id1”

此示例策略指定默认值id1,但使其为可选的。在创建集群时,可以选择不同的池,也可以选择不使用池。

允许列表策略

允许值的列表。

接口AllowlistPolicy类型“allowlist”字符串|数量|布尔) [];
例子
“spark_version”“类型”“allowlist”“价值观”“7.2.x-scala2.12”“7.3.x-scala2.12”

块列表策略

不允许的值列表。由于值必须精确匹配,当属性在值的表示方式上过于宽松(例如允许前导和尾随空格)时,此策略可能无法按预期工作。

接口BlocklistPolicy类型“过滤清单”字符串|数量|布尔) [];
例子
“spark_version”“类型”“过滤清单”“价值观”“4.0.x-scala2.11”

正则表达式的政策

将值限制为匹配正则表达式的值。为了安全起见,匹配正则表达式时总是锚定在字符串值的开头和结尾。

接口RegexPolicy类型“正则表达式”模式字符串
例子
“spark_version”“类型”“正则表达式”“模式”“5 \ \[3456]。*”

政策范围

属性指定的范围内限制该值minValue而且maxValue属性。取值必须为十进制数。数值限制必须可表示为双浮点值。为了表示缺少特定的限制,可以省略其中之一minValuemaxValue

interface RangePolicy{类型:“范围”;minValue吗?:数量;maxValue吗?:数量;}
例子
“num_workers”“类型”“范围”“执行”10

无限的政策

不定义值限制。您可以使用这种策略类型来设置必需的属性,或者在UI中设置默认值。

接口UnlimitedPolicy类型“无限”
例子

如果需要添加COST_BUCKET标签:

“custom_tags。COST_BUCKET”“类型”“无限”

为Spark配置变量设置默认值,但也允许省略(删除)它:

“spark_conf.spark.my.conf”“类型”“无限”“isOptional”真正的“defaultValue”“my_value”

集群策略属性路径

下表列出了支持的集群策略属性路径。

集群策略虚拟属性路径

属性路径

类型

描述

dbus_per_hour

数量

计算属性,表示包括驱动程序节点在内的集群的DBU成本(在自动伸缩集群的情况下为最大值)。适用范围有限。

cluster_type

字符串

表示可以创建的集群类型:

  • 通用用于Databricks通用集群

  • 工作对于作业调度器创建的作业集群

  • dlt用于创建的集群Delta Live Tables管道

允许或阻止从策略创建指定类型的集群。如果通用值,则该策略不会显示在通用集群创建表单中。如果工作值,则策略不会显示在作业新建群集表单中。

数组属性

可以通过两种方式为数组属性指定策略:

  • 对所有数组元素的通用限制。这些限制使用策略路径中的通配符。

  • 特定索引处数组元素的特定限制。这些限制在路径中使用一个数字。

集群策略示例

一般集群策略

一种通用的集群策略,用于指导用户并限制某些功能,同时要求标记、限制最大实例数和强制超时。

“spark_conf.spark.databricks.cluster.profile”“类型”“固定”“价值”“serverless”“隐藏”真正的},“instance_pool_id”“类型”“禁止”“隐藏”真正的},“spark_version”“类型”“正则表达式”“模式”“7 \ \ [0 - 9]+ \ \ .x-scala。*”},“node_type_id”“类型”“allowlist”“价值观”“n2-highmem-4”“n2-highmem-8”“n2-highmem-16”),“defaultValue”“n2-highmem-4”},“driver_node_type_id”“类型”“固定”“价值”“n2-highmem-8”“隐藏”真正的},“autoscale.min_workers”“类型”“固定”“价值”1“隐藏”真正的},“autoscale.max_workers”“类型”“范围”“执行”25“defaultValue”5},“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”“类型”“固定”“价值”“n2-highmem-4”“隐藏”真正的},“driver_node_type_id”“类型”“固定”“价值”“i3.xlarge”“隐藏”真正的},“spark_version”“类型”“固定”“价值”“7.3.x-scala2.12”“隐藏”真正的},“custom_tags.team”“类型”“固定”“价值”“产品”

工作政策

允许用户创建作业集群并使用集群运行作业。用户不能使用该策略创建通用集群。

“cluster_type”“类型”“固定”“价值”“工作”},“dbus_per_hour”“类型”“范围”“执行”One hundred.},“instance_pool_id”“类型”“禁止”“隐藏”真正的},“num_workers”“类型”“范围”“minValue”1},“node_type_id”“类型”“正则表达式”“模式”“(na) [1 - 2] d ? -(?:标准| highmem)(0 - 96)”},“driver_node_type_id”“类型”“正则表达式”“模式”“(na) [1 - 2] d ? -(?:标准| highmem)(0 - 96)”},“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 >”