在 Azure 虛擬網路中部署 Azure Databricks (VNet 插入)

Azure Databricks 的預設部署是 Azure 上的完全受控服務:所有資料平面資源,包括所有叢集將相關聯的 VNet ,都會部署到鎖定的資源群組。 不過,如果您需要網路自訂,您可以在自己的虛擬網路中部署 Azure Databricks 資料平面資源 (有時稱為 VNet 插入) ,讓您能夠:

將 Azure Databricks 資料平面資源部署至您自己的 VNet 也可讓您利用彈性的 CIDR 範圍, (VNet /26 與子網之間的 /24/16- 任意位置) 。

重要

您無法取代現有工作區的 VNet。 如果目前的工作區無法容納所需的作用中叢集節點數目,建議您在較大的 VNet 中建立另一個工作區。 請遵循下列詳細移轉步驟,將資源 (Notebook、叢集組態、作業) 從舊工作區複製到新工作區。

重要

本文提及 資料平面一詞,這是 Azure Databricks 平臺的計算層。 在本文中,資料平面是指 Azure 訂用帳戶中的傳統資料平面。 相較之下,支援 無伺服器 SQL 倉儲的無伺服器資料平面 (公開預覽) 會在 Azure Databricks 的 Azure 訂用帳戶中執行。 若要深入瞭解,請參閱 無伺服器計算

虛擬網路需求

您部署 Azure Databricks 工作區的 VNet 必須符合下列需求:

  • 地區: VNet 必須位於與 Azure Databricks 工作區相同的區域中。

  • 訂閱: VNet 必須與 Azure Databricks 工作區位於相同的訂用帳戶中。

  • 位址空間: VNet 與 CIDR 區塊之間的 /16/24 CIDR 區塊,以及最多 /26 兩個子網的 CIDR 區塊:容器子網和主機子網。 如需根據 VNet 及其子網大小上限叢集節點的指引,請參閱 位址空間和最大叢集節點

  • 子網: VNet 必須包含兩個專用於 Azure Databricks 工作區的子網:容器子網 (有時稱為私人子網) ,而主機子網 (有時稱為公用子網) 。 不過,對於使用 安全叢集連線的工作區,容器子網和主機子網都是 私人的。 不支援跨工作區共用子網,或在 Azure Databricks 工作區所使用的子網上部署其他 Azure 資源。 如需根據 VNet 及其子網大小上限叢集節點的指引,請參閱 位址空間和最大叢集節點

    重要

    這些子網與 Azure Databricks 工作區之間有一對一關聯性。 您不能在單一子網路內共用多個工作區。 不支援跨工作區共用子網,或在 Azure Databricks 工作區所使用的子網上部署其他 Azure 資源。

如需範本設定 VNet 和部署工作區的詳細資訊,請參閱Azure-Databricks 提供的 Azure Resource Manager 範本

位址空間和叢集節點上限

具有較小虛擬網路的工作區可能會用盡 IP 位址, (網路空間) 比具有較大虛擬網路的工作區更快。 針對 VNet 使用 和 /24 之間的 /16 CIDR 區塊,以及最多 /26 兩個子網的 CIDR 區塊, (容器子網和主機子網) 。

VNet 位址空間的 CIDR 範圍會影響工作區可使用的叢集節點數目上限:

  • Azure Databricks 工作區需要 VNet 中的兩個子網:容器子網 (也稱為私人子網) ,而主機子網 (也稱為公用子網) 。 如果工作區使用 安全的叢集連線能力,則容器和主機子網都是私人的。
  • Azure 會在每個子網中保留五個 IP
  • 在每個子網內,Azure Databricks 需要每個叢集節點一個 IP 位址。 總共每個叢集節點都有兩個 IP:主機子網中主機的一個 IP 位址,以及容器子網中容器的一個 IP 位址。
  • 您可能不想使用 VNet 的所有位址空間。 例如,您可能想要在一個 VNet 中建立多個工作區。 因為您無法跨工作區共用子網,所以您可能想要沒有使用 VNet 位址空間總計的子網。
  • 您必須為位於 VNet 位址空間內的兩個新子網配置位址空間,且不會與該 VNet 中目前或未來子網的位址空間重迭。

下表根據網路大小顯示子網大小上限。 此資料表假設沒有任何額外的子網佔用位址空間。 如果您有預先存在的子網,或想要保留其他子網的位址空間,請使用較小的子網:

VNet 位址空間 (CIDR) 假設沒有其他子網,azure Databricks 子網大小上限 (CIDR)
/16 /17
/17 /18
/18 /19
/20 /21
/21 /22
/22 /23
/23 /24
/24 /25

若要根據子網大小尋找最大叢集節點,請使用下表。 每個子網的 IP 位址資料行包含 五個 Azure 保留的 IP 位址。 最右邊的資料行表示可在以該大小子網布建的工作區中同時執行的叢集節點數目。

子網大小 (CIDR) 每個子網的 IP 位址 Azure Databricks 叢集節點上限
/17 32768 32763
/18 16384 16379
/19 8192 8187
/20 4096 4091
/21 2048 2043
/22 1024 1019
/23 512 507
/24 256 251
/25 128 123
/26 64 59

使用 Azure 入口網站 建立 Azure Databricks 工作區

本節說明如何在Azure 入口網站中建立 Azure Databricks 工作區,並將其部署在您自己的現有 VNet 中。 如果 VNet 尚未存在,則 Azure Databricks 會使用您指定的 CIDR 範圍,以兩個新的子網更新 VNet。 此服務也會使用新的網路安全性群組來更新子網、設定輸入和輸出規則,最後將工作區部署至更新的 VNet。 如需進一步控制 VNet 的設定,請使用 Azure-Databricks 提供的 Azure Resource Manager (ARM) 範本,而不是入口網站 UI。 例如,使用現有的網路安全性群組或建立您自己的安全性規則。 請參閱使用 Azure Resource Manager 範本進行進階設定。

重要

建立工作區的使用者必須獲指派網路參與者角色或指派動作的 Microsoft.Network/virtualNetworks/subnets/join/action自訂角色

您必須設定將部署 Azure Databricks 工作區的 VNet 。 您可以使用現有的 VNet 或建立新的 VNet,但 VNet 必須與您打算建立的 Azure Databricks 工作區位於相同的區域和相同的訂用帳戶。 VNet 的大小必須介於 /16 和 /24 之間的 CIDR 範圍。 如需詳細資訊,請參閱 虛擬網路需求

您可以在設定工作區時,使用現有的子網或指定新子網的名稱和 IP 範圍。

  1. 在Azure 入口網站中,選取[+ 建立資源 > 分析 > Azure Databricks] 或搜尋 Azure Databricks,然後按一下 [建立] 或 [+ 新增] 以啟動 [Azure Databricks 服務] 對話方塊。

  2. 請遵循 在您自己的 VNet 快速入門中建立 Azure Databricks 工作區中所述的 設定步驟。

  3. 在 [ 網路] 索引 標籤中,選取您想要在 [ 虛擬網路 ] 欄位中使用的 VNet。

    重要

    如果您在選擇器中看不到網路名稱,請確認您為工作區指定的 Azure 區域符合所需 VNet 的 Azure 區域。

    選取虛擬網路

  4. 為您的子網命名,並在區塊中提供最多大小的 /26 CIDR 範圍。 如需根據 VNet 及其子網大小上限叢集節點的指引,請參閱 位址空間和最大叢集節點

    • 若要指定現有的子網,請指定現有子網的確切名稱。 使用現有的子網時,也會將工作區建立表單中的 IP 範圍設定為完全符合現有子網的 IP 範圍。
    • 若要建立新的子網,請指定該 VNet 中尚未存在的子網名稱。 子網會以指定的 IP 範圍建立。 您必須在 VNet 的 IP 範圍內指定 IP 範圍,且尚未配置給現有的子網。

    重要

    Azure Databricks 要求子網名稱不超過 30 個字元。 這比Azure 入口網站中子網允許的最大長度短。 使用現有子網之前,如果其名稱超過 30 個字元,請將其重新命名。

    子網會取得相關聯的網路安全性群組規則,其中包含允許叢集內部通訊的規則。 Azure Databricks 將具有委派的許可權,可透過資源提供者更新這兩個 Microsoft.Databricks/workspaces 子網。 這些許可權僅適用于 Azure Databricks 所需的網路安全性群組規則,不適用於您新增的其他網路安全性群組規則,或套用至所有網路安全性群組隨附的預設網路安全性群組規則。

  5. 按一下 [建立 ] 將 Azure Databricks 工作區部署至 VNet。

    注意

    當工作區部署失敗時,仍會建立工作區,但狀態為失敗。 刪除失敗的工作區,並建立可解決部署錯誤的新工作區。 當您刪除失敗的工作區時,也會一併刪除受控資源群組和任何已成功部署的資源。

使用 Azure Resource Manager 範本的進階設定

如果您想要進一步控制 VNet 的設定,您可以使用下列 Azure Resource Manager (ARM) 範本,而不是以入口網站為基礎的自動 VNet 設定和工作區部署。 例如,使用現有的子網、現有的網路安全性群組,或新增您自己的安全性規則。

如果您使用自訂 Azure Resource Manager範本或Azure Databricks VNet 插入的工作區範本,將工作區部署至現有的 VNet,您必須建立主機和容器子網、將網路安全性群組連結至每個子網,並將子網委派給 Microsoft.Databricks/workspaces 資源提供者,部署工作區。 您必須針對您所部署的每個工作區,各有一組個別的子網。

全一範本

若要使用一個範本建立 VNet 和 Azure Databricks 工作區,請使用 適用于 Azure Databricks VNet 插入工作區的 All-in-one 範本

虛擬網路範本

若要使用範本建立具有適當子網的 VNet,請使用 Databricks VNet 插入的 VNet 範本

Azure Databricks 工作區範本

若要使用範本將 Azure Databricks 工作區部署到現有的 VNet,請使用 適用于 Azure Databricks VNet 插入的工作區範本

工作區範本可讓您指定現有的 VNet,並使用現有的子網:

  • 針對您所部署的每個工作區,您必須有一組個別的主機/容器子網。 不支援跨工作區共用子網,或在 Azure Databricks 工作區所使用的子網上部署其他 Azure 資源。
  • VNet 的主機和容器子網必須連結網路安全性群組,且必須先委派給 Microsoft.Databricks/workspaces 服務,才能使用此 Azure Resource Manager範本來部署工作區。
  • 若要建立具有正確委派子網的 VNet,請使用 Databricks VNet 插入的 VNet 範本
  • 若要在尚未委派主機和容器子網時使用現有的 VNet,請參閱 將子網委派新增或移除,將 VNet 插入預覽工作區升級至 GA

網路安全性群組規則

下表顯示 Azure Databricks 所使用的目前網路安全性群組規則。 如果 Azure Databricks 需要新增規則或變更此清單上現有規則的範圍,您會收到事先通知。 每當發生這類修改時,本文和資料表都會更新。

本節內容:

Azure Databricks 如何管理網路安全性群組規則

下列各節所列的 NSG 規則代表 Azure Databricks 在您的 NSG 中自動布建和管理的 NSG 規則,方法是將 VNet 的主機和容器子網委派給 Microsoft.Databricks/workspaces 服務。 您沒有更新或刪除這些 NSG 規則的許可權;子網委派會封鎖任何嘗試這樣做。 Azure Databricks 必須擁有這些規則,以確保 Microsoft 可在 VNet 中可靠地操作及支援 Azure Databricks 服務。

其中一些 NSG 規則已將 VirtualNetwork 指派為來源和目的地。 這已實作,以簡化 Azure 中缺少子網層級服務標籤的設計。 所有叢集都會在內部受到第二層網路原則的保護,因此叢集 A 無法連線到相同工作區中的叢集 B。 如果您的工作區部署至相同客戶管理的 VNet 中的不同子網組,這也適用于多個工作區。

重要

如果工作區 VNet 對等互連至另一個客戶管理的網路,或是在其他子網中布建非 Azure Databricks 資源,Databricks 建議您將 拒絕 輸入規則新增至連結至其他網路和子網的 NSG,以封鎖來自 Azure Databricks 叢集的來源流量。 您不需要為想要讓 Azure Databricks 叢集連線的資源新增這類規則。

2020 年 1 月 13 日之後所建立工作區的網路安全性群組規則

本節中的資訊僅適用于 2020 年 1 月 13 日之後 建立的 Azure Databricks 工作區。 如果您的工作區是在 2020 年 1 月 13 日發行安全叢集連線之前建立, (SCC) ,請參閱下一節。

重要

下表列出只有在 停用安全叢集連線 (SCC) 時,才會包含的兩個輸入安全性群組規則。

方向 通訊協定 來源 來源連接埠 Destination 目的地連接埠 已使用
連入 任意 VirtualNetwork 任意 VirtualNetwork 任意 預設
輸入 TCP AzureDatabricks (服務標籤)
只有在停用 SCC 時
任意 VirtualNetwork 22 公用 IP
輸入 TCP AzureDatabricks (服務標籤)
只有在停用 SCC 時
任意 VirtualNetwork 5557 公用 IP
輸出 TCP VirtualNetwork 任意 AzureDatabricks (服務標籤) 443 Default
輸出 TCP VirtualNetwork 任意 SQL 3306 Default
輸出 TCP VirtualNetwork 任意 儲存體 443 Default
輸出 任意 VirtualNetwork 任意 VirtualNetwork 任意 Default
輸出 TCP VirtualNetwork 任意 EventHub 9093 Default
輸出 任意 VirtualNetwork 任意 NFS 111 Default
輸出 任意 VirtualNetwork 任意 NFS 2049 預設

2020 年 1 月 13 日之前所建立工作區的網路安全性群組規則

本節中的資訊僅適用于 2020 年 1 月 13 日之前 建立的 Azure Databricks 工作區。 如果您的工作區是在 2020 年 1 月 13 日或之後建立的,請參閱上一節。

方向 通訊協定 來源 來源連接埠 Destination 目的地連接埠 已使用
連入 任意 VirtualNetwork 任意 VirtualNetwork 任意 預設
輸入 TCP ControlPlane IP 任意 VirtualNetwork 22 公用 IP
輸入 TCP ControlPlane IP 任意 VirtualNetwork 5557 公用 IP
輸出 TCP VirtualNetwork 任意 Webapp IP 443 Default
輸出 TCP VirtualNetwork 任意 SQL 3306 Default
輸出 TCP VirtualNetwork 任意 儲存體 443 Default
輸出 任意 VirtualNetwork 任意 VirtualNetwork 任意 Default
輸出 TCP VirtualNetwork 任意 EventHub 9093 預設

重要

Azure Databricks 是部署在全域 Azure 公用雲端基礎結構上的 Microsoft Azure 第一方服務。 服務元件之間的所有通訊 (包括控制平面和客戶資料平面中公用 IP 間的通訊) 都會保留在 Microsoft Azure 網路骨幹內。 另請參閱 Microsoft 全域網路

疑難排解

工作區建立錯誤

子網需要下列任何委派 (s) [Microsoft.Databricks/workspaces] 來參考服務關聯連結

可能的原因:您正在 VNet 中建立工作區,其主機和容器子網尚未委派給 Microsoft.Databricks/workspaces 服務。 每個子網路都必須已連接網路安全性群組,且必須正確委派。 如需詳細資訊,請參閱虛擬網路需求

子網已由工作區使用中

可能的原因:您要在 VNet 中建立工作區,其中包含現有 Azure Databricks 工作區已使用的主機和容器子網。 您不能在單一子網路內共用多個工作區。 您所部署的每個工作區都必須有一組新的主機和容器子網路。

疑難排解

實例無法連線:無法透過 SSH 連線到資源。

可能的原因:封鎖從控制平面到背景工作角色的流量。 如果您要部署到連線到內部部署網路的現有 VNet,請使用將 Azure Databricks 工作區連線到內部部署網路中提供的資訊來檢閱您的設定。

未預期的啟動失敗:設定叢集時發生非預期的錯誤。 如果問題持續發生,請重試並連絡 Azure Databricks。 內部錯誤訊息: Timeout while placing node

可能的原因:已封鎖從背景工作角色到 Azure 儲存體端點的流量。 如果您使用自訂 DNS 伺服器,也請檢查 VNet 中 DNS 伺服器的狀態。

雲端提供者啟動失敗:設定叢集時發生雲端提供者錯誤。 如需詳細資訊,請參閱 Azure Databricks 指南。 Azure 錯誤碼: AuthorizationFailed/InvalidResourceReference.

可能的原因:VNet 或子網不再存在。 請確定 VNet 和子網路存在。

叢集已終止。 原因:Spark 啟動失敗:Spark 無法及時啟動。 此問題可能是因為 Hive 中繼存放區故障、Spark 設定無效或 init 腳本故障所造成。 請參閱 Spark 驅動程式記錄以針對此問題進行疑難排解,並在問題持續發生時連絡 Databricks。 內部錯誤訊息: Spark failed to start: Driver failed to start in time

可能的原因:容器無法與裝載實例或 DBFS 儲存體帳戶通訊。 修正方法是將自訂路由新增至 DBFS 儲存體帳戶的子網路,並將下一個躍點設為網際網路。