管理集群策略
預覽
此功能已在公共預覽.
集群策略限製為配置集群基於一組規則。策略規則限製用於創建集群的屬性或屬性值。集群策略具有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 >”}}