管理集群政策

集群政策是一個工具用來限製一個用戶或組的集群創建基於一組權限策略規則。

集群政策讓你:

  • 限製用戶使用規定設置創建集群。

  • 限製用戶創建一定數量的集群。

  • 簡化用戶界麵,讓更多的用戶創建他們自己的集群(通過修複和隱藏一些值)。

  • 每個集群控製成本通過限製最大成本(通過設置屬性的值限製為每小時的價格)。

介紹集群政策和配置建議,把磚集群政策的視頻:

本文主要關注使用UI管理策略。您還可以使用集群政策API權限API管理政策。

需求

集群政策要求保費計劃

施行細則

可以表達以下類型的約束策略規則:

  • 定值與禁用控製元素

  • 定值與控製隱藏在UI (JSON視圖中的值是可見的)

  • 屬性值有限的一組值(允許列表或塊列表)

  • 屬性值匹配給定的正則表達式

  • 數值屬性限製在一定範圍內

  • 啟用默認值使用的UI與控製

管理集群屬性

集群政策支持所有集群屬性控製集群API。每個字段支持特定類型的限製可能不同(基於他們的類型和關係到集群表單UI元素)。

此外,集群政策支持以下合成屬性:

  • “馬克斯DBU-hour”指標,即最大DBUs集群可以使用每一個。這個指標是一種直接的方式來控製成本在個體集群級別。

  • 限製創建集群的來源:就業服務工作(集群),集群UI,集群REST API(通用集群)。

非托管集群屬性

以下集群屬性不能被限製在一個集群政策:

  • 庫處理庫API。一個方法是使用自定義容器或者一個init腳本

  • 集群權限(acl),它是由一個單獨的API。

定義一個集群政策

你定義一個集群政策JSON策略定義,你把當你創建集群政策。

創建一個集群政策

您創建一個集群使用集群政策UI或政策集群政策API。使用UI創建一個集群政策:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊政策選項卡。

  3. 點擊創建集群政策

  4. 名字的政策。政策名稱不區分大小寫。

  5. 可選地,選擇家庭的政策家庭下拉。這個決定了模板的構建策略。看到政策的家庭

  6. 輸入一個描述的政策。這有助於別人了解的目的的政策。

  7. 定義標簽,粘貼策略定義

  8. 點擊創建

克隆現有集群政策

您可以創建一個集群政策通過克隆現有政策。克隆一個集群政策使用UI:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊政策選項卡。

  3. 選擇您想要克隆的政策。

  4. 點擊克隆

  5. 在接下來的頁麵中,所有字段和值預填充的現有政策。改變您想修改的字段的值,然後單擊創建

管理集群政策權限使用UI

工作空間管理員有權限對所有政策。

當創建一個集群,加上他們隻能選擇政策已獲得許可。如果用戶集群創建權限,那麼他們也可以選擇不受限製的政策,允許他們創建完全可配置集群。

請注意

如果用戶沒有訪問任何政策,該政策下拉不顯示。

添加一個集群政策許可

添加一個集群政策許可使用UI:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊政策選項卡。

  3. 選擇您希望更新的政策。

  4. 單擊權限選項卡。

  5. 的名字列,選擇一個校長。

  6. 許可列,選擇一個許可

  7. 點擊添加

刪除一個集群政策許可

刪除一個集群政策許可使用UI:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊政策選項卡。

  3. 選擇您希望更新的政策。

  4. 單擊權限選項卡。

  5. 單擊刪除圖標圖標允許行。

限製集群的數量每用戶使用UI

政策權限允許您設置每個用戶的最大數量的集群。這決定了有多少集群用戶可以創建使用這一政策。如果用戶超過了極限,操作失敗。

限製數量的集群使用政策,用戶可以創建使用馬克斯集群每個用戶設置下權限選項卡中集群政策的UI。

請注意

磚不主動終止集群保持極限。如果用戶有三個集群運行政策和工作區管理減少了限製,三個集群將繼續運行。額外的集群必須手動終止遵守限製。

編輯一個集群政策使用UI

你編輯一個集群使用集群政策UI或政策集群政策API。使用UI編輯一個集群政策:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊集群政策選項卡。

    集群政策選項卡圖片
  3. 選擇你想要編輯的政策。

  4. 點擊編輯

  5. 在定義選項卡中,編輯策略定義。

  6. 點擊更新

刪除一個集群政策使用UI

你刪除一個集群使用集群政策UI或政策集群政策API。刪除一個集群政策使用UI:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊集群政策選項卡。

    集群政策選項卡選擇
  3. 選擇您要刪除的政策。

  4. 點擊刪除

  5. 點擊刪除來確認。

集群政策的家庭

當您創建一個集群政策,您可以選擇使用一個政策的家庭。政策的家庭提供預填充策略規則,共同計算用例。

當使用一個政策的家庭,你的規則政策繼承了家族的政策。在選擇一個政策的家庭,您可以創建按原樣的政策,或選擇添加規則或覆蓋給定的規則。

創建一個定製的策略使用策略的家庭

自定義使用政策的家庭政策:

  1. 點擊計算圖標計算在側邊欄。

  2. 單擊政策選項卡。

  3. 點擊創建集群政策

  4. 名字的政策。政策名稱不區分大小寫。

  5. 選擇的政策的家庭家庭下拉。

  6. 定義選項卡上,單擊編輯

  7. 模態出現,您可以覆蓋策略定義。在覆蓋部分,然後單擊添加更新的定義好吧

集群策略定義

一個集群策略定義是一家集個人表達的策略定義JSON。

策略定義

一個策略定義之間的地圖嗎路徑字符串定義一個屬性和一個限製類型。每個屬性隻能有一個限製。一條路徑是特定類型的資源,反映了資源屬性名稱創建API。如果資源創建使用嵌套的屬性,使用點的路徑連接嵌套的屬性名稱。策略定義中定義的屬性不是無限當您創建一個集群使用的政策。

接口政策{(路徑:字符串]:PolicyElement}

策略元素

一個政策因素指定一個支持的限製類型在給定屬性,可以選擇一個默認值。您可以指定一個默認值沒有定義的屬性限製政策。

類型PolicyElement=FixedPolicy|ForbiddenPolicy|(LimitingPolicyBase&LimitingPolicy);類型LimitingPolicy=AllowlistPolicy|BlocklistPolicy|RegexPolicy|RangePolicy|UnlimitedPolicy;

本節描述該政策類型:

固定的政策

極限的值設置為指定的值。屬性值除了數字和布爾,該屬性的值必須為代表或可轉換為一個字符串。

這個屬性可以隱藏在UI隱藏的國旗是現在和組真正的。一個固定的政策不能指定一個defaultValue屬性自價值屬性已經決定了默認值。

接口FixedPolicy{類型:“固定”;值:字符串| |布爾;隱藏嗎?:布爾;}
例子
{“spark_version”:{“類型”:“固定”,“價值”:“汽車:latest-ml”,“隱藏”:真正的}}

被禁止的政策

對於一個可選屬性,防止使用的屬性。

接口ForbiddenPolicy{類型:“禁止”;}
例子

這一政策禁止連接池的集群。

{“instance_pool_id”:{“類型”:“禁止”}}

限製政策:共同的領域

在一個限製政策可以指定兩個額外的字段:

  • defaultValue——集群創建表單的值填充UI。

  • isOptional——限製政策屬性使其所需。可選屬性,設置isOptional場為true。

接口LimitedPolicyBase {defaultValue嗎?:字符串| |布爾;isOptional嗎?:布爾;}

請注意

默認值不會自動獲得應用於集群的創建集群API。應用默認值用API創建一個集群時,添加參數apply_policy_default_values集群定義和設置它真正的。這是不需要固定的政策。

例子
{“instance_pool_id”:{“類型”:“無限”,“isOptional”:真正的,“defaultValue”:“id1”}}

這個例子政策指定默認值id1池,但使其可選的。在創建集群時,您可以選擇一個不同的池或選擇不使用一個。

允許列表政策

允許的值的列表。

接口AllowlistPolicy{類型:“allowlist”;:(字符串|數量|布爾)[];}
例子
{“spark_version”:{“類型”:“allowlist”,“價值觀”:(“11.3.x-scala2.12”,“10.4.x-scala2.12”]}}

塊列表政策

不允許的值的列表。因為必須精確匹配的值,這一政策可能不會像預期的那樣工作屬性是如何寬容值時表示(例如允許首尾空格)。

接口BlocklistPolicy{類型:“過濾清單”;:(字符串|數量|布爾)[];}
例子
{“spark_version”:{“類型”:“過濾清單”,“價值觀”:(“7.3.x-scala2.12”]}}

正則表達式的政策

限製的匹配正則表達式的值。為安全起見,當匹配正則表達式總是固定在開始和結束的字符串值。

接口RegexPolicy{類型:“正則表達式”;模式:字符串;}
例子
{“spark_version”:{“類型”:“正則表達式”,“模式”:“5 \ \ [3456]。*”}}

政策範圍

限製指定的值的範圍minValuemaxValue屬性。的值必須是一個十進製數。必須可表示的數值範圍作為一個浮點值的兩倍。表明缺乏特定的限製,你可以省略的minValue,maxValue

接口RangePolicy{類型:“範圍”;minValue嗎?:數量;maxValue嗎?:數量;}
例子
{“num_workers”:{“類型”:“範圍”,“執行”:10}}

無限的政策

沒有定義值限製。你可以使用這個策略類型屬性要求或設置默認值在UI中。

接口UnlimitedPolicy{類型:“無限”;}
例子

需要添加COST_BUCKET標簽:

{“custom_tags.COST_BUCKET”:{“類型”:“無限”}}

設置默認值為一個火花配置變量,但也允許省略(刪除):

{“spark_conf.spark.my.conf”:{“類型”:“無限”,“isOptional”:真正的,“defaultValue”:“my_value”}}

集群政策屬性路徑

下表列出了支持集群政策屬性路徑。

屬性路徑

類型

描述

autoscale.max_workers

可選數量

隱藏時,消除了最大的工人數量從UI字段。

autoscale.min_workers

可選數量

當隱藏,消除了最低工人數域從UI。

autotermination_minutes

數量

值0表示沒有自動終止。隱藏時,將自動終止輸入UI複選框和價值。

cluster_name

字符串

集群名稱。

custom_tags。*

字符串

控製特定的標記值通過添加標簽的名稱,例如:custom_tags。< mytag >

data_security_mode

字符串

設置集群的安全特性。

driver_node_type_id

可選的字符串

隱藏時,消除了司機的節點類型選擇界麵。

init_scripts。* .workspace.destinationinit_scripts。* .gcs.destinationinit_scripts。* .dbfs.destinationinit_scripts。* .file.destination

字符串

*指init腳本屬性的索引數組。看到數組屬性

instance_pool_id

字符串

如果控製工人使用的池節點driver_instance_pool_id也定義,或為所有集群節點。如果你使用池工作節點,您還必須為司機節點使用池。當隱藏、刪除池選擇從UI。

driver_instance_pool_id

字符串

如果指定,配置不同的池司機節點比工人節點。如果沒有指定,繼承instance_pool_id。如果你使用池工作節點,您還必須為司機節點使用池。當隱藏、刪除驅動程序池選擇從UI。

gcp_attributes.availability

字符串

控製GCP可行(PREEMPTIBLE_GCP PREEMPTIBLE_WITH_FALLBACK_GCP,或ON_DEMAND_GCP)。

gcp_attributes.use_preemptible_executors

布爾

設置為真正的允許員工使用搶占式啟動VM實例。

gcp_attributes.zone_id

字符串

控製GCP帶ID。

node_type_id

字符串

隱藏時,消除了工作節點類型選擇的UI。

num_workers

可選數量

隱藏時,消除了工人數量從UI規範。

runtime_engine

字符串

決定是否集群使用光子。可能的值是光子標準

single_user_name

字符串

為憑據透傳單用戶訪問的用戶名。

spark_conf。*

可選的字符串

控製特定的配置值附加配置鍵名。例如,spark_conf.spark.executor.memory

spark_env_vars。*

可選的字符串

控製特定的火花環境變量值通過添加環境變量,例如:spark_env_vars。<環境變量名稱>

spark_version

字符串

火花圖像版本名稱(如通過API指定)。

集群政策虛擬屬性路徑

屬性路徑

類型

描述

dbus_per_hour

數量

計算屬性代表(最大的自動定量集群)DBU集群包括驅動節點的成本。使用範圍的限製。

cluster_type

字符串

代表可以創建集群的類型:

允許或阻止創建指定類型的集群政策。如果通用價值是不允許的,政策是不顯示在通用集群創建表單。如果工作價值是不允許的,政策是工作中沒有顯示新的集群形式。

數組屬性

您可以指定數組屬性在兩個方麵:政策

  • 通用所有數組元素的限製。這些限製使用*通配符在政策路徑標誌。

  • 數組元素的具體限製在一個特定的索引。這些限製使用的路徑。

例如,對於數組屬性init_scripts,通用路徑開始init_scripts。*和具體路徑init_scripts。< n >,在那裏< n >是一個整數數組中的索引(從0開始)。您可以結合通用和特定的限製,在這種情況下,通用的限製適用於每個數組元素沒有特定的限製。在每種情況下隻有一個政策限製將適用。

典型用例數組的政策是:

  • 需要inclusion-specific條目。例如:

    {“init_scripts.0.dbfs.destination”:{“類型”:“固定”,“價值”:“< required-script-1 >”},“init_scripts.1.dbfs.destination”:{“類型”:“固定”,“價值”:“< required-script-2 >”}}

    你不能要求特定的值沒有指定的順序。

  • 需要一個固定的值為整個列表。例如:

    {“init_scripts.0.dbfs.destination”:{“類型”:“固定”,“價值”:“< required-script-1 >”},“init_scripts * .dbfs.destination”。:{“類型”:“禁止”}}
  • 不允許使用。

    {“init_scripts * .dbfs.destination”。:{“類型”:“禁止”}}
  • 允許任意數量的條目隻遵循一個特定的限製。例如:

    {“init_scripts * .dbfs.destination”。:{“類型”:“正則表達式”,“模式”:”。* <所需內容>。*”}}

在的情況下init_scripts路徑,可以包含一個數組的多個結構處理所有可能的變體可能需要根據用例。例如,要求一組特定的init腳本,和禁止其他的任何變體版本,您可以使用以下模式:

{“init_scripts.1.dbfs.destination”:{“類型”:“固定”,“價值”:“dbfs: / < dbfs-path >”},“init_scripts * .workspace.destination”。:{“類型”:“禁止”},“init_scripts * .gcs.destination”。:{“類型”:“禁止”},“init_scripts * .dbfs.destination”。:{“類型”:“禁止”},“init_scripts * .file.destination”。:{“類型”:“禁止”}}

集群政策的例子

一般集群政策

通用的集群政策旨在引導用戶,限製一些功能,同時要求標簽,限製的最大實例數,和執行超時。

{“spark_conf.spark.databricks.cluster.profile”:{“類型”:“固定”,“價值”:“serverless”,“隱藏”:真正的},“instance_pool_id”:{“類型”:“禁止”,“隱藏”:真正的},“spark_version”:{“類型”:“正則表達式”,“模式”:“12 \ \ [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”:{“類型”:“固定”,“價值”:“產品”}}

δ定義限製住表管道集群

請注意

當使用集群政策配置三角洲集群生活表,磚應用單個策略的建議默認的維護集群。

配置一個集群政策對於管道集群中,創建一個與政策cluster_type字段設置為dlt。下麵的示例創建一個最小的政策為δ生活表集群:

{“cluster_type”:{“類型”:“固定”,“價值”:“dlt”},“num_workers”:{“類型”:“無限”,“defaultValue”:3,“isOptional”:真正的},“node_type_id”:{“類型”:“無限”,“isOptional”:真正的},“spark_version”:{“類型”:“無限”,“隱藏”:真正的}}

簡單的中等規模的政策

允許用戶創建一個中等規模的集群以最小的配置。隻有在創建時必需字段集群名稱;其餘的是固定的和隱藏。

{“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”:{“類型”:“固定”,“價值”:“汽車:latest-ml”,“隱藏”:真正的},“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”:{“類型”:“無限”,“defaultValue”:“汽車:latest-lts”},“custom_tags.team”:{“類型”:“固定”,“價值”:“產品”}}

外部metastore政策

允許用戶創建一個集群,一個admin-defined 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 >”}}

刪除自動定量政策

這一政策禁用自動定量和允許用戶組工人的數量在給定的範圍內。

{“num_workers”:{“類型”:“範圍”,“執行”:25,“minValue”:1,“defaultValue”:5}}