init 腳本(初始化腳本)是在每個叢集節點啟動時,Apache Spark 驅動程式或執行程式的 JVM 啟動之前執行的殼層腳本。 如果您必須使用 init 腳本和組態資訊,本文會提供建議。
針對 init 腳本的建議
Databricks 建議盡可能使用內建平臺功能,而不是 init 腳本。 廣泛使用 init 腳本可能會遲緩遷移至新的 Databricks 運行時間版本,並阻止採用某些 Databricks 優化功能。
重要
如果您需要從 DBFS 上的 init 腳本移轉,請參閱 從 DBFS 移轉 init 腳本。
下列 Databricks 功能可解決 init 腳本的一些常見使用案例:
如果您必須使用 init 腳本:
- 管理初始腳本時,應使用計算原則或群集範圍的初始腳本,而非全域初始腳本。 請參閱 init 腳本類型。
- 使用計算策略管理生產環境和互動環境中的函式庫安裝。 請勿使用 init 腳本安裝程式庫。 請參閱 計算原則。
- 針對所有工作負載使用標準存取模式(先前共用存取模式)。 只有在標準存取模式不支援必要的功能時,才使用專用存取模式(先前為單一使用者存取模式)。
- 針對所有工作負載使用新的 Databricks 執行環境版本和 Unity Catalog。
下表提供依據 Databricks Runtime 版本和 Unity Catalog 啟用情況所提出的建議。
| 環境 | 建議 |
|---|---|
| 使用 Unity Catalog 的 Databricks Runtime 13.3 LTS 及更高版本 | 將 init 文稿儲存在 Unity 目錄 磁碟區。 |
| 不含 Unity 目錄功能的 Databricks Runtime 版本 11.3 LTS 和更新版本 | 將 init 腳本儲存為 工作區檔案。 (檔案大小限制為 500 MB)。 |
| Databricks Runtime 10.4 LTS 和以下版本 | 使用 雲端物件記憶體儲存 init 腳本。 |
Azure Databricks 支援哪些類型的 init 腳本?
Azure Databricks 支援兩種 init 腳本:叢集範圍和全域,但建議使用叢集範圍的 init 腳本。
- 叢集範圍設定:在每個經由腳本設定的叢集上執行。 這是執行 init 腳本的建議方式。 請參閱 叢集範圍初始化腳本。
- 全域:在以專用存取模式或無隔離共用存取模式設定的工作區中的所有叢集上執行。 這些 init 腳本可能會導致非預期的問題,例如連結庫衝突。 只有工作區系統管理員使用者可以建立全域 init 腳本。 請參閱 Global init scripts。
每當變更任何類型的init腳本時,都必須重新啟動受腳本影響的所有叢集。
全域初始化腳本會在叢集範圍的初始化腳本之前執行。
重要
舊版的全域 init 腳本和以舊版叢集命名的 init 腳本會在其他 init 腳本之前執行。 這些 init 腳本已經停止支援,但可能會出現在 2023 年 2 月 21 日之前建立的工作區中。 請參閱叢集命名的 init 腳本(舊版)和全域 init 腳本(舊版)。
哪裡可以安裝 init 腳本?
您可以從工作區檔案、Unity 目錄磁碟區和雲端物件記憶體儲存和設定 init 腳本,但所有叢集組態都不支援 init 腳本,而且並非所有檔案都可以從 init 腳本參考。 如需 init 腳本的環境建議,請參閱 init 腳本的建議。
下表指出支援以來源位置和叢集存取模式為基礎的 init 腳本。 列出的 Databricks Runtime 版本是使用組合所需的最低版本。 如需叢集存取模式的相關信息,請參閱 存取模式。
注意
標準存取模式需要由系統管理員將初始化腳本新增至 allowlist。 請參閱 使用標準存取模式計算的 Allowlist 連結庫和 init 命令稿(先前稱為共用存取模式)。
| 標準存取模式 | 單一存取模式 | 無隔離共用存取模式 | |
|---|---|---|---|
| 工作區檔案 | 不支援 | 所有支援的 Databricks 執行時間版本。 在 11.3 LTS 以下的版本上,不支持參考其他工作區檔案的 init 腳本。 |
所有支援的 Databricks 執行時間版本。 |
| 磁碟區 | 13.3 LTS 及以上版本 | 13.3 LTS 及以上版本 | 不支援 |
| 雲端儲存空間 | 13.3 LTS 及以上版本 | 所有支援的 Databricks 運行時間版本 | 所有支援的 Databricks 運行時間版本 |
從 DBFS 遷移初始化腳本
警告
DBFS 上的 Init 腳本已達到生命週期結束,無法再使用。 您必須先將 init 腳本移轉至支援的位置,才能開始計算。 將 init 文稿儲存在 Unity 目錄磁碟區、工作區檔案或雲端物件記憶體中。
需要從 DBFS 移轉 init 腳本的使用者可以使用下列指南。 請確定您已識別出設定的正確目標。 請參閱 init 腳本的建議。