配置集群
請注意
CLI特性在穀歌Cloud的Databricks上是不可用的。
本文解釋了在創建和編輯Databricks集群時可用的配置選項。重點介紹了如何使用UI創建和編輯集群。其他方法請參見集群CLI,集群API 2.0,Databricks Terraform提供商.
有關幫助,請參見確定哪種配置選項組合最適合您的需求集群配置最佳實踐.
集群政策
一個集群政策限製基於一組規則配置集群的能力。策略規則限製用於創建集群的屬性或屬性值。集群策略具有acl,這些acl將其限製為特定用戶和組的使用,從而限製了在創建集群時可以選擇的策略。
中選擇集群策略,配置集群策略政策下拉。
請注意
如果沒有政策在工作區中創建,政策下拉菜單不顯示。
如果你有:
集群創建權限,您可以選擇不受限製的策略並創建完全可配置的集群。的不受限製的策略不限製任何集群屬性或屬性值。
同時創建集群權限和訪問集群策略,可以選擇不受限製的策略和您可以訪問的策略。
僅訪問集群策略,您可以選擇具有訪問權限的策略。
集群模式
Databricks支持三種集群模式:標準、高並發和單獨的節點.默認集群模式為“Standard”。
重要的
創建集群後,不允許修改集群模式。如果需要不同的集群模式,則必須創建一個新集群。
高並發集群
高並發集群是受管的雲資源。High Concurrency集群的主要好處是它們提供了細粒度的共享,以實現最大的資源利用率和最小的查詢延遲。
高並發集群可以運行用SQL、Python和r開發的工作負載。高並發集群的性能和安全性是通過在單獨的進程中運行用戶代碼來提供的,這在Scala中是不可能的。
此外,隻有High Concurrency集群支持表訪問控製.
若要創建高並發集群,請設置集群模式來高並發.
單節點集群
Single Node集群沒有worker,在驅動節點上運行Spark作業。
相比之下,標準集群需要至少一個Spark工作節點除驅動節點外,還用於執行Spark作業。
如果需要創建單節點集群,請設置集群模式來單獨的節點.
有關使用單節點集群的詳細信息,請參見單節點集群.
池
為了減少集群啟動時間,您可以將集群附加到預定義的集群池空閑實例的。集群是使用池中的實例創建的。如果一個池沒有足夠的空閑資源來創建請求的驅動程序或工作者,則池通過從實例提供程序分配新實例來擴展。當附加的集群終止時,它使用的實例將返回到池中,並可由不同的集群重用。
看到池以了解有關在Databricks中使用池的更多信息。
磚運行時
數據庫運行時是運行在您的數據庫上的核心組件的集合集群.所有Databricks運行時都包含Apache Spark,並添加組件和更新,以提高可用性、性能和安全性。詳細信息請參見磚運行時.
Databricks提供了幾種運行時類型和這些運行時類型的幾種版本Databricks運行時版本下拉菜單,可以創建或編輯集群。
集群節點類型
集群由一個驅動節點和零個或多個工作節點組成。
您可以為驅動程序和工作節點選擇單獨的雲提供程序實例類型,盡管默認情況下驅動程序節點使用與工作節點相同的實例類型。不同的實例類型適用於不同的用例,例如內存密集型或計算密集型工作負載。
司機節點
驅動程序節點維護連接到集群的所有筆記本的狀態信息。驅動節點還維護SparkContext並解釋您從集群上的筆記本或庫中運行的所有命令,並運行與Spark執行器協調的Apache Spark master。
驅動節點類型默認值與工作節點類型相同。如果您打算這樣做,可以選擇具有更多內存的較大驅動程序節點類型收集()
收集Spark員工的大量數據,並在筆記本上進行分析。
提示
由於驅動程序節點維護所附筆記本的所有狀態信息,請確保從驅動程序節點分離未使用的筆記本。
工作者節點
Databricks工作節點運行Spark執行器和集群正常運行所需的其他服務。當您使用Spark分布工作負載時,所有的分布式處理都發生在工作節點上。Databricks為每個工作節點運行一個執行程序;因此這些項遺囑執行人而且工人在Databricks體係結構上下文中可互換使用。
提示
要運行Spark作業,至少需要一個工作節點。如果集群中沒有工人,可以在驅動節點上運行非Spark命令,但Spark命令會失敗。
GPU實例類型
對於需要高性能的計算挑戰任務,例如與深度學習相關的任務,Databricks支持使用圖形處理單元(gpu)加速的集群。有關更多信息,請參見GPU-enabled集群.
具有本地ssd的集群實例類型
有關實例類型的最新列表、每種類型的價格以及本地ssd的大小,請參見GCP定價估計器.
具有本地ssd的實例類型使用默認的穀歌雲服務器端加密進行加密。
具有本地ssd的實例類型自動使用三角洲緩存為了提高性能。所有實例類型上的緩存大小都是自動設置的,因此不需要顯式地設置磁盤使用情況。
集群大小和自動縮放
創建Databricks集群時,可以為集群提供固定數量的工作人員,也可以為集群提供最小和最大數量的工作人員。
當您提供一個固定大小的集群時,Databricks確保您的集群具有指定數量的工人。當您為工作人員的數量提供一個範圍時,Databricks將選擇運行作業所需的適當數量的工作人員。這被稱為自動定量.
隨著自動伸縮,Databricks動態地重新分配工人,以說明你的工作的特點。管道的某些部分可能比其他部分更需要計算,Databricks會在工作的這些階段自動添加額外的工作人員(並在不再需要時刪除他們)。
自動伸縮可以更容易地實現高集群利用率,因為您不需要配置集群來匹配工作負載。這尤其適用於需求隨時間變化的工作負載(比如在一天中探索一個數據集),但它也適用於一次性的較短工作負載,其配置需求未知。自動縮放提供了兩個優勢:
與固定大小的未配置的集群相比,工作負載可以更快地運行。
與靜態大小的集群相比,自動伸縮集群可以降低總體成本。
根據集群和工作負載的恒定大小,自動伸縮可以同時為您提供其中一種或兩種好處。當雲提供商終止實例時,集群大小可以低於所選擇的最小工作數。在這種情況下,Databricks會不斷嚐試重新提供實例,以保持最少的工作人員數量。
請注意
無法使用自動縮放功能spark-submit
就業機會。
自動縮放的行為
在2步內從最小到最大。
即使集群沒有空閑,也可以通過查看shuffle文件狀態來縮小規模。
根據當前節點的百分比遞減。
在作業集群上,如果集群在過去40秒內未得到充分利用,則減少。
在通用集群上,如果集群在過去150秒內未得到充分利用,則會減小。
的
spark.databricks.aggressiveWindowDownS
Spark配置屬性以秒為單位指定集群做出降級決策的頻率。增大該值會導致集群縮小的速度變慢。最大值為600。
穀歌雲配置
在配置集群的穀歌雲實例時,可以指定穀歌雲特定的選項。
使用可搶占實例
一個可搶占的虛擬機實例是一個可以以比普通實例低得多的價格創建和運行的實例。但是,如果穀歌Cloud需要為其他任務訪問這些資源,則可能會停止(搶占)這些實例。可搶占實例使用多餘的穀歌計算引擎容量,因此它們的可用性隨使用情況而變化。
創建新集群時,可以通過以下兩種方式啟用可搶占虛擬機實例:
通過該界麵創建集群時,可以單擊搶占式實例旁邊是工作類型細節。
在使用UI創建實例池時,可以設置隨需應變/搶占式來所有的搶占式,可與備用GCP搶占,或按需GCP.如果可搶占的虛擬機實例不可用,默認情況下集群將退回到按需使用虛擬機實例。若要配置回退行為,請設置
gcp_attributes.gcp_availability
來PREEMPTIBLE_GCP
或PREEMPTIBLE_WITH_FALLBACK_GCP
.默認為ON_DEMAND_GCP
.
{“instance_pool_name”:“可搶占的w/o備用API測試”,“node_type_id”:“n1-highmem-4”,“gcp_attributes”:{“gcp_availability”:“PREEMPTIBLE_GCP”}}
接下來,創建一個新的集群並設置池到一個可搶占的實例池。
本地磁盤加密
具有本地ssd的實例類型使用默認的穀歌雲服務器端加密進行加密。看到具有本地ssd的集群實例類型.
從secret中檢索Spark配置屬性
Databricks建議將密碼等敏感信息存儲在數據庫中秘密而不是明文。要在Spark配置中引用一個秘密,請使用以下語法:
火花。<屬性名>{{秘密/ < scope-name > / <秘密名字>}}
例如,設置Spark配置屬性為密碼
對儲存在裏麵的秘密的價值秘密/ acme_app /密碼
:
火花。密碼{{秘密/ acme-app /密碼}}
有關更多信息,請參見在Spark配置屬性或環境變量中引用秘密的語法.
環境變量
您可以配置可以從中訪問的自定義環境變量init腳本在集群上運行。Databricks還提供預定義的環境變量你可以在初始化腳本中使用。不能重寫這些預定義的環境變量。
2 .在集群配置界麵,單擊高級選項切換。
單擊火花選項卡。
中設置環境變量環境變量字段。
集群的標簽
集群標記允許您輕鬆監控組織中各個組使用的雲資源的成本。在創建集群時,可以將標記指定為鍵值對,Databricks將這些標記應用到GKE集群上的Databricks Runtime pod和持久卷,並在Databricks中使用DBU使用報告.
請注意
帳戶控製台中Databricks計費使用圖表不按標記聚合使用情況計費使用下載的CSV報告包括默認和自定義標記。標記不會傳播到您在穀歌Cloud控製台中查看的集群,但是您可以使用自定義和默認標記穀歌GKE使用計量
有關池和群集標記類型如何協同工作的詳細信息,請參見使用集群和池標記監視使用情況.
為了方便起見,Databricks為每個集群應用了四個默認標記:供應商
,創造者
,ClusterName
,ClusterId
.
此外,在作業集群上,Databricks應用了兩個默認標記:RunName
而且JobId
.
警告
不分配自定義標簽與鍵的名字
到集群。每個集群都有一個標記的名字
由Databricks設置。如果您更改與鍵相關聯的值的名字
,該集群將不再被Databricks跟蹤。因此,集群在空閑後可能不會被終止,並且將繼續產生使用成本。
您可以在創建集群時添加自定義標記。配置集群標簽。
2 .在集群配置界麵,單擊高級選項切換。
在頁麵底部,單擊標簽選項卡。
為每個自定義標記添加一個鍵值對。您最多可以添加54個自定義標記。
詳情請參見使用集群和池標記監視使用情況.
集群日誌傳遞
在創建集群時,可以指定Spark driver節點、worker節點和事件的日誌傳遞位置。日誌每5分鍾發送一次到您選擇的目的地。當一個集群被終止時,Databricks保證交付在集群被終止之前生成的所有日誌。
日誌的目的地取決於集群ID。如果指定的目標為dbfs: / cluster-log-delivery
,集群日誌0630 - 191345 leap375
送貨至dbfs: / cluster-log-delivery / 0630 - 191345 leap375
.
設置日誌傳遞位置。
2 .在集群配置界麵,單擊高級選項切換。
單擊日誌記錄選項卡。
選擇目標類型。
輸入集群日誌路徑。
日誌路徑必須是DBFS路徑,以
dbfs: / /
.
請注意
REST API中也提供了該特性。看到集群API 2.0.
Init腳本
集群節點初始化腳本(或初始化腳本)是在每個集群節點啟動期間運行的shell腳本之前啟動Spark驅動程序或worker JVM。可以使用init腳本安裝Databricks運行時未包含的包和庫、修改JVM係統類路徑、設置JVM使用的係統屬性和環境變量、修改Spark配置參數等配置任務。
控件可以將初始化腳本附加到集群高級選項部分,並單擊Init腳本選項卡。
有關詳細說明,請參見集群節點初始化腳本.