最佳實踐:集群策略

預覽

此功能已在公共預覽

集群政策為管理員提供在Databricks工作空間中創建集群資源的控製。有效使用集群策略可以使管理員:

  • 實施標準化的集群配置。

  • 防止過度使用資源,控製開支。

  • 通過正確標記集群來確保準確的退款。

  • 通過為用戶提供針對特定工作負載的預配置集群配置,方便分析和處理。

有關集群策略和配置建議的介紹,請查看Databricks集群策略視頻:

與有效的入職、審批和退款流程結合,集群策略可以成為Databricks平台治理的基礎組件。Beplay体育安卓版本本指南提供了一些建議和最佳實踐,以幫助您創建成功的計劃,將集群策略集成到治理框架中。

由於治理對於每個組織的需求和現有治理基礎設施都是獨一無二的,因此本文首先介紹通常應用於集群策略的建議。本文的最後一部分討論了解決您在環境中可能遇到的挑戰的具體策略。

本文討論了以下最佳實踐和建議,以確保成功地實施集群治理:

  • 創建計劃,分階段引入集群策略,以幫助用戶過渡到受治理的環境。

  • 為集群策略推出的每個階段創建通信更改的計劃。

  • 確定集群治理的挑戰,並實施應對這些挑戰的策略。

集群政策推出

實現集群策略可以顯著改變用戶體驗。Databricks推薦一種分階段的方法來幫助指導用戶完成轉換:

  • 溝通即將發生的更改,並為用戶提供測試集群配置的機會。

  • 執行軟下線。

  • 逐步引入進一步的政策變化。

  • 執行硬切換到完全受治理的環境。

逐步推出允許用戶熟悉新策略,並防止對現有工作負載的破壞。下圖是這個推薦過程的一個例子:

集群策略推出計劃

以下各節提供關於這些階段的更詳細的信息:

溝通和測試集群策略

通過與用戶溝通即將發生的更改來開始這個過程。溝通計劃應包括:

  • 關於即將發生的變化的詳細信息。

  • 為什麼會發生這些變化。

  • 用戶需要做什麼來確保工作負載的成功過渡。

  • 如何提供關於變更的反饋。

  • 推出的每個階段的時間軸。

  • 在分階段推出的每個階段開始時,溝通與該階段相關的進一步細節。

下圖為逐步推出提供了一個通信計劃示例:

集群策略通信規劃

根據您的環境和集群策略策略,您的計劃可能有不同的階段。這個例子包括四個階段:

  • 階段1包括向用戶傳達計劃並開始測試。用戶必須有機會在符合新策略的集群上測試他們當前和預期的工作負載。您希望在流程的早期識別現有和計劃中的工作負載的任何問題。

  • 階段2繼續進行測試,同時推出集群標記策略。

  • 階段3介紹集群類型,在本例中使用t恤大小指定集群,例如,小型、大型或超大集群類型。

  • 階段4是集群策略的最終推出以及完整的用戶文檔。

用戶還應該有機會在初始階段使用規劃的集群配置測試他們的工作負載。此測試可以幫助識別使用建議策略運行時存在問題的現有工作負載。

引入集群策略的注意事項

在規劃集群策略的初始部署時,請考慮當前的管理策略。特別是,要考慮您是從一個限製用戶創建集群的環境遷移過來的,還是從一個更開放的環境遷移過來的。

嚴格的環境

在用戶沒有權限創建集群的環境中,首先推出限製策略,並為用戶製定支持計劃。實施計劃可以是基於計算機的培訓、研討會或文檔。為用戶提供關於配置集群的最佳實踐的指導將提高他們充分利用平台的能力。Beplay体育安卓版本當用戶表現出對平台的遵從性和能力時,政策可以放鬆。Beplay体育安卓版本

不受限製的環境

在不受限製的環境中應用策略可能更具挑戰性。一些現有的用例和集群幾乎總是不受新策略的約束,因此在測試或軟推出階段識別這些用例和集群是至關重要的。

擁有集群創建權限或對無限製策略的訪問權限的用戶將在整個軟推出過程中保持對該策略的訪問權限,以確保所有工作負載繼續正常工作。用戶應該使用軟推出,用將提供給他們的新策略來測試他們的所有工作負載。

一定要給用戶一個提交關於策略反饋的地方。當出現問題時,與用戶一起改進策略或定義新策略。

最後推出

當到達截止日期時,為受限製用戶刪除對不受限製策略的訪問。集群策略的推出現在應該完成了。

具體的挑戰和策略

以下是應用集群策略來應對特定挑戰的示例。其中許多策略可以同時使用,但需要跨所有策略應用每種策略。例如,如果將標記實施策略與t恤大小策略一起使用,則每個t恤策略還需要一個custom_tag。*政策。

標簽執行

挑戰

用戶可以自由地創建集群,沒有機製強製他們應用所需的標記。

解決方案

  1. 撤銷集群創建權限從用戶。

  2. 向任何適用的集群策略添加集群標記規則。將群集標記規則添加到策略中custom_tags。<標記名稱>屬性。該值可以是an下的任何值無限的政策,或者可以用固定允許列表塊列表正則表達式,或範圍政策。例如,為了確保正確的退款和成本歸屬,執行一項COST_CENTER標記在每個策略上,限製為允許的成本中心值列表:

    “custom_tags。COST_CENTER”“類型”“allowlist”“價值觀”:[“9999”“9921”“9531”]}}

    任何使用此策略的用戶都必須填寫COST_CENTER標記為9999、9921或9531,用於啟動集群。

  3. 將集群策略分配給應該能夠向這三個成本中心收費的用戶。可以在用戶或組級別通過集群政策UI或集群策略API添加或修改權限端點。下麵的示例請求體將一個策略分配給銷售部門:

    “access_control_list”“user_name”“user@mydomain.com”“all_permissions”“permission_level”“CAN_USE”},“group_name”“銷售”“all_permissions”“permission_level”“CAN_USE”

沒有經驗的用戶

挑戰

用戶不熟悉集群或雲基礎設施的供應,或者對集群創建選項感到不知所措。

解決方案

使用集群策略定義“t恤”大小的集群配置,例如小型、中型或大型集群。

  1. 為每個t恤尺寸創建一個策略。t恤大小策略向用戶指示相對的集群大小,可以是靈活的模板,也可以是零選項配置。零期權或低期權政策通常會有固定還有隱藏的政策規則。下麵的示例為對象定義了一個DBR 7.3固定值的策略spark_version.設置隱藏的標誌為true將確保此選項對用戶不可見。

    “spark_version”“類型”“固定”“價值”“7.3.x-scala2.12”“隱藏”真正的}}

    在定義靈活的模板時,可以使用範圍塊列表塊列表正則表達式,無限的政策策略來設置上邊界、非可選字段和半受限策略元素。下麵的示例定義了一個策略,該策略支持將節點自動擴展到最多25個節點。您可以使用這個定義來設置每個t恤尺寸的上限,同時提供一些靈活性。要查看集群模板方法的更多詳細信息,請參見過度的資源使用情況

    “autoscale.max_workers”“類型”“範圍”“執行”“25”“defaultValue”5}}
  2. 將策略分配給應該被允許創建t恤大小集群的用戶。可以通過集群策略UI或集群策略權限API在用戶或組級別分配策略。例如,通過UI將此策略分配給所有用戶:

    1. 進入集群策略並選擇編輯

    2. 選擇權限選項卡。

    3. 選擇所有用戶選擇下下拉。

      為所有用戶分配策略
  3. 從必須隻使用這些新策略的組撤銷對不受限製策略的訪問權。一旦使用了集群策略,擁有“集群創建”權限的用戶就可以訪問不受限製的策略。對於不應該擁有該權限的用戶,撤銷該權限非常重要。

    要取消集群創建權限,請參見配置集群創建權限

用例特定的策略

挑戰

一些工作負載或分析與現有策略不兼容,或者用戶不知道某些工作負載類型的正確集群配置。

解決方案

如果您發現工作負載不能很好地與現有的策略配合,通常最好是創建專門針對這些工作負載的新策略,而不是擴展現有的策略。

為了幫助用戶使用這些策略創建集群,它可以幫助創建針對特定用例調優的策略。為這些策略指定描述性名稱,以幫助用戶識別它們。例如,如果工作負載將查詢支持謂詞下推的數據源,那麼最佳實踐是構建一個特定的策略,以較低或零工作者最小值強製自動伸縮。該策略將確保在等待數據源計算查詢的下推組件時,雲提供商和Databricks的成本不會不必要地增加。

  1. 創建一個強製使用特定於案例的最佳實踐的策略。這個例子定義了一個固定值為的策略0對於最低工人數量。此策略還強製集群將自動伸縮,以滿足謂詞下推示例的最佳實踐。

    “autoscale.min_workers”“類型”“固定”“價值”“0”“隱藏”}}
  2. 將策略分配給需要為這些用例構建集群的用戶。可以在用戶或組級別上分配策略集群政策UI或者是集群策略權限API.例如,要通過UI將此策略分配給數據科學家組:

    1. 進入集群策略並選擇編輯

    2. 選擇權限選項卡。

    3. 中選擇團隊的名稱,即可將策略分配給特定團隊選擇用戶或組下拉。

      為組指定策略

過度的資源使用情況

挑戰

用戶正在創建不必要的大型集群,消耗過多且昂貴的資源。這通常是由:

  • 未能激活自動縮放。

  • 自動終止窗口使用錯誤。

  • 最小工作節點數高。

  • 昂貴的實例類型。

解決方案

將集群策略與內部審批流程相匹配,將支持對資源的控製,同時在必要時提供對大型計算資源的訪問。

  1. 建立一個審查流程,以授予對更大或更靈活的政策的訪問權。審查過程應該有一個收集信息的入口表單,該表單支持更大或更靈活的集群配置的需求。平台所有Beplay体育安卓版本權團隊應該評估這些信息,以決定如何支持工作負載需求。下圖展示了一個使用t恤尺寸的審批流程示例:

    政策調整的過程
  2. 用更少的約束創建更靈活的策略,並專注於控製像標簽這樣的治理項目。一個靈活政策的例子:

    “autoscale.min_workers”“類型”“範圍”“執行”20.“defaultValue”2},“autoscale.max_workers”“類型”“範圍”“執行”One hundred.“defaultValue”8},“autotermination_minutes”“類型”“範圍”“執行”120“defaultValue”60},“node_type_id”“類型”“過濾清單”“價值觀”“z1d.12xlarge”“z1d.6xlarge”“r5d.16xlarge”“r5a.24xlarge”“c5.24xlarge”),“defaultValue”“i3.xlarge”},“driver_node_type_id”“類型”“過濾清單”“價值觀”“z1d.12xlarge”“z1d.6xlarge”“r5d.16xlarge”“r5a.24xlarge”“c5.24xlarge”),“defaultValue”“i3.xlarge”},“spark_version”“類型”“固定”“價值”“7.3 -scala2.12”“隱藏”真正的},“enable_elastic_disk”“類型”“固定”“價值”真正的“隱藏”真正的},“custom_tags.team”“類型”“固定”“價值”“產品”

    該策略提供了靈活性,允許用戶:

    • 從一係列實例類型中進行選擇,而不是少數過於昂貴的實例類型。

    • 配置最多100節點的集群。

    • 設置自動終止時間為120分鍾。

    它還設定了合理的限製,並通過以下方式確保治理:

    • 為這個團隊強製執行一個標簽。

    • 需要自動定量。

    • 啟用彈性盤自動伸縮功能。

    • 指定Databricks運行時版本。

    對於需要在各種集群配置上調優作業的更有經驗的用戶來說,該策略非常理想,它是將策略與審批流程關聯起來的一個很好的示例。

  3. 記錄升級和審批過程,並與用戶共享。發布關於識別可能需要更大靈活性或更大集群的工作負載類型的指導也很有幫助。

  4. 一旦用戶被批準,將策略分配給他們。可以在用戶或組級別通過集群政策UI或者通過向集群策略權限API

    “access_control_list”“user_name”“users_email@yourdomain.com”“permission_level”“CAN_USE”

了解更多

要了解有關Databricks上的集群策略的更多信息,請參見管理集群政策以及我們關於集群策略的博客:允許使用集群策略創建具有完全管理控製的簡單集群