共用方式為


使用 Apache Hadoop、Spark、Kafka 等在 HDInsight 中設定叢集

在本文中,您將瞭解如何在 Azure HDInsight 中設定及設定 Apache Hadoop、Apache Spark、Apache Kafka、互動式查詢或 Apache HBase。 您也會瞭解如何將叢集加入網域,以自定義叢集並新增安全性。

Hadoop 叢集是由數部虛擬機(也稱為節點)所組成,用於分散式工作處理。 HDInsight 會處理個別節點安裝和設定的實作詳細數據。 您只提供一般設定資訊。

重要

HDInsight 叢集的計費,是從建立叢集之後開始算起,並於叢集被刪除時停止計算。 計費會按分鐘計費,因此一律在不再使用時刪除您的叢集。 了解如何刪除叢集。

如果您同時使用多個叢集,您想要建立虛擬網路。 如果您使用 Spark 叢集,也想要使用 Hive Warehouse Connector。 如需詳細資訊,請參閱針對 Azure HDInsight 規劃虛擬網路整合 Apache Spark 和 Apache Hive 與 Hive Warehouse Connector

叢集設定方法

下表顯示可用來設定 HDInsight 叢集的不同方法。

叢集建立方法 網頁瀏覽器 命令列 REST API SDK
Azure 入口網站      
Azure Data Factory
Azure CLI      
Azure PowerShell      
cURL    
Azure 資源管理員範本      

本文會逐步引導您完成 Azure 入口網站中的設定,您可以在此入口網站中建立 HDInsight 叢集。

基本概念

顯示 [建立 HDInsight 叢集] 選項的螢幕快照。

專案詳細資料

Azure Resource Manager 可協助您將應用程式中的資源當作群組來處理,也就是所謂的 Azure 資源群組。 您可以在單一、協調的作業中,將應用程式的所有資源進行部署、更新、監視或刪除。

叢集詳細資料

叢集詳細數據包括名稱、區域、類型和版本。

叢集名稱

HDInsight 叢集名稱具有下列限制:

  • 允許的字元:a-z、0-9 和 A-Z
  • 最大長度:59
  • 保留名稱:應用程式
  • 叢集命名:範圍適用於所有訂用帳戶的所有 Azure。 叢集名稱在全球必須是唯一的。 前六個字元在虛擬網路內必須是唯一的。

區域

您不需要明確指定叢集位置。 叢集位於與預設記憶體相同的位置。 如需支援區域的清單,請選取 HDInsight 定價上的 [區域] 下拉式清單。

叢集類型

在下表中,HDInsight 目前會提供叢集類型,每個都有一元件來提供特定功能。

重要

HDInsight 叢集有多種類型,每種類型均適用於單一工作負載或技術。 不支援的方法會建立結合多個類型的叢集,例如一個叢集上的 HBase。 如果您的解決方案需要會分散到多個 HDInsight 叢集類型的技術,Azure 虛擬網路可以連接必要的叢集類型。

叢集類型 功能
Hadoop 批次查詢和分析已儲存的數據。
HBase 處理大量的無架構 NoSQL 數據。
互動式查詢 更快速進行互動式 Hive 查詢的記憶體內部快取。
Kafka 分散式串流平臺,可用來建置即時串流數據管線和應用程式。
Spark 記憶體內部處理、互動式查詢、微批次串流處理。

版本

選擇此叢集的 HDInsight 版本。 如需詳細資訊,請參閱支援的 HDInsight 版本

叢集認證

使用 HDInsight 叢集,您可以在建立叢集期間設定兩個使用者帳戶:

  • 叢集登入用戶名稱:預設使用者名稱為 admin。它會使用 Azure 入口網站 的基本組態。 它也稱為 叢集使用者HTTP 使用者
  • 安全殼層 (SSH) 使用者名稱:用來透過 SSH 連線到叢集。 如需詳細資訊,請參閱搭配 HDInsight 使用 SSH

HTTP 使用者名稱具有下列限制:

  • 允許的特殊字元:_ 和@
  • 不允許字元: #;.“',/:!*?$(){}[]<>|&--=+%~^space
  • 最大長度:20

SSH 使用者名稱具有下列限制:

  • 允許的特殊字元:_ 和@
  • 不允許字元: #;.“',/:!*?$(){}[]<>|&--=+%~^space
  • 最大長度:64
  • 保留名稱:hadoop、users、oozie、hive、mapred、ambari-qa、zookeeper、 tez, hdfs, sqoop, yarn, hcat, ams, hbase, administrator, admin, user, user1, test, user2, test1, user3, admin1, 1, 123, a, actuser, adm, admin2, aspnet, backup, console, David, guest, John, owner, root, server, sql, support, support_388945a0, sys, test2, test3, user4, user5, spark

儲存體

顯示具有 HDFS 相容端點之叢集記憶體設定的螢幕快照。

雖然 Hadoop 的內部部署安裝會使用 Hadoop 分散式檔案系統 (HDFS) 在叢集上儲存,但在雲端中,您會使用連線到叢集的記憶體端點。 使用雲端記憶體表示您可以安全地刪除用於計算的 HDInsight 叢集,同時仍保留您的數據。

HDInsight 叢集可以使用下列儲存體選項:

  • Azure Data Lake Storage Gen2
  • Azure 儲存體一般用途 v2
  • Azure 儲存體區塊 Blob (僅支援作為次要儲存體)

如需 HDInsight 儲存體選項的詳細資訊,請參閱比較與 Azure HDInsight 叢集搭配使用的儲存體選項

不支援在與 HDInsight 叢集不同的位置使用更多記憶體帳戶。

在設定期間,針對預設記憶體端點,您可以指定記憶體帳戶或 Data Lake Storage 的 Blob 容器。 預設儲存體包含應用程式與系統記錄。 您可以選擇性地指定叢集可存取的更多連結記憶體帳戶和 Data Lake Storage 帳戶。 HDInsight 叢集與相依的儲存體帳戶必須位於相同的 Azure 位置。

注意

需要安全傳輸的功能會透過安全連線,強制執行您帳戶的所有要求。 只有 HDInsight 叢集 3.6 版或更新版本支援這項功能。 如需詳細資訊,請參閱在 Azure HDInsight 中使用安全傳輸儲存體帳戶建立 Apache Hadoop 叢集

建立叢集之後,請勿啟用安全的記憶體傳輸,因為使用記憶體帳戶可能會導致錯誤。 最好是使用已啟用安全傳輸的記憶體帳戶來建立新的叢集。

HDInsight 不會自動傳輸、移動或複製儲存在記憶體中的數據,從一個區域到另一個區域。

中繼存放區設定

您可以建立選擇性的 Hive 或 Apache Oozie 中繼存放區。 並非所有叢集類型都支援中繼存放區,而 Azure Synapse Analytics 與中繼存放區不相容。

如需詳細資訊,請參閱在 Azure HDInsight 中使用外部中繼資料存放區

在建立自訂中繼存放區時,資料庫名稱請勿使用破折號、連字號或空格。 這些字元可能會導致叢集建立程序失敗。

適用於 Hive 的 SQL 資料庫

如果想要在刪除 HDInsight 叢集之後保留 Hive 資料表,請使用自訂的中繼存放區。 您可以接著將中繼存放區附加至另一個 HDInsight 叢集。

針對一個 HDInsight 叢集版本建立的 HDInsight 中繼存放區無法跨不同的 HDInsight 叢集版本共用。 如需 HDInsight 版本清單,請參閱支援的 HDInsight 版本

您可以使用受控識別向 Hive 的 SQL 資料庫進行驗證。 如需詳細資訊,請參閱在 HDInsight 中使用受控識別進行 SQL 資料庫 驗證。

默認中繼存放區提供具有基本層 5 DTU 限制的 SQL 資料庫(無法升級)。 它適用於基本測試目的。 針對大型或生產工作負載,建議您移轉至外部中繼存放區。

適用於 Oozie 的 SQL 資料庫

若要在使用 Oozie 時提高效能,請使用自定義中繼存放區。 在您刪除叢集後,中繼存放區也可提供 Oozie 作業資料的存取。

您可以使用受控識別向適用於 Oozie 的 SQL 資料庫進行驗證。 如需詳細資訊,請參閱在 HDInsight 中使用受控識別進行 SQL 資料庫 驗證。

Ambari 的 SQL 資料庫

Ambari 可用來監視 HDInsight 叢集、進行設定變更,以及儲存叢集管理資訊和作業歷程記錄。 使用自訂 Ambari 資料庫功能,您可以部署新的叢集,並在您管理的外部資料庫中設定 Ambari。 如需詳細資訊,請參閱 自定義Ambari資料庫

您可以使用受控識別向Ambari的 SQL 資料庫進行驗證。 如需詳細資訊,請參閱在 HDInsight 中使用受控識別進行 SQL 資料庫 驗證。

您無法重複使用自訂的 Oozie 中繼存放區。 若要使用自定義 Oozie 中繼存放區,您必須在建立 HDInsight 叢集時提供空的 SQL 資料庫。

安全性 + 網路

顯示 [企業安全性套件] 選項的螢幕快照。

企業安全性套件

針對Hadoop、Spark、HBase、Kafka和互動式查詢叢集類型,您可以選擇啟用企業安全性套件。 此套件提供選項,可讓您使用 Apache Ranger 設定更安全的叢集,並與 Microsoft Entra 整合。 如需詳細資訊,請參閱 Azure HDInsight 中企業安全性的概觀

透過企業安全性套件,您可以整合 HDInsight 與 Microsoft Entra 和 Apache Ranger。 您可以使用企業安全性套件來建立多個使用者。

如需建立已加入網域的 HDInsight 叢集的詳細資訊,請參閱 建立已加入網域的 HDInsight 沙盒環境

Transport Layer Security (傳輸層安全性)

如需詳細資訊,請參閱傳輸層安全性

虛擬網路

如果您的解決方案需要會分散到多個 HDInsight 叢集類型的技術,Azure 虛擬網路可以連接必要的叢集類型。 此設定可讓叢集 (以及您對它們部署的任何程式碼) 直接彼此通訊。

如需如何搭配使用 Azure 虛擬網路與 HDInsight 的詳細資訊,請參閱規劃 HDInsight 的虛擬網路

如需在 Azure 虛擬網路內使用兩個叢集類型的範例,請參閱使用 Apache Spark 結構化串流搭配 Apache Kafka。 如需搭配虛擬網路使用 HDInsight 的詳細資訊 (包含虛擬網路的特定組態需求),請參閱規劃 HDInsight 的虛擬網路

磁碟加密設定

如需詳細資訊,請參閱客戶管理的金鑰磁碟加密

Kafka REST Proxy

此設定僅適用於 Kafka 叢集類型。 如需詳細資訊,請參閱使用 REST Proxy

身分識別

如需詳細資訊,請參閱 Azure HDInsight 中的受控身分識別

設定 + 定價

顯示為 HDInsight 選擇節點大小的螢幕快照。

只要叢集存在,就會針對您的節點使用量收費。 建立叢集後就開始計費,並在叢集刪除後停止計費。 無法解除分配或保留叢集。

節點組態

每個叢集類型都有自己的節點數目、節點術語和預設 VM 大小。 在下表中,每個節點類型的節點數目會列在括弧中。

類型 節點 圖表
Hadoop 前端節點 (2)、背景工作節點 (1+) HDInsight Hadoop 叢集節點。
hbase 前端伺服器 (2), 區域伺服器 (1+), 主要/ZooKeeper 節點 (3) HDInsight HBase 叢集類型設定。
Spark 前端節點 (2)、背景工作節點 (1+)、Zookeeper 節點 (3) (A1 Zookeeper VM 大小不限) HDInsight Spark 叢集類型設定。

如需詳細資訊,請參閱 叢集的默認節點組態和 VM 大小。

HDInsight 叢集的成本取決於節點數目和節點的 VM 大小。

不同的叢集類型具有不同的節點類型、節點數目和節點大小:

  • Hadoop 叢集型態預設值:

    • 兩個前端節點
    • 四個 背景工作節點

如果您嘗試 HDInsight,建議您使用一個背景工作節點。 如需關於 HDInsight 定價的詳細資訊,請參閱 HDInsight 定價

注意

叢集大小限制會隨著 Azure 訂用帳戶而有所不同。 若要提高限制,請與 Azure 帳務支援人員連絡。

使用 Azure 入口網站設定叢集時,節點大小會透過 [設定 + 定價] 索引標籤公開。在入口網站中,您也可以查看與不同節點大小相關聯的成本。

虛擬機器大小

當您部署叢集時,請根據您打算部署的解決方案選擇計算資源。 下列 VM 可用於 HDInsight 叢集:

若要了解當您使用不同的 SDK 或 Azure PowerShell 建立叢集時,應該使用哪個值來指定 VM 大小,請參閱 要用於 HDInsight 叢集的 VM 大小。 在此連結的文件中,請使用資料表中 Size (大小) 資料行的值。

重要

如果您需要叢集中超過 32 個背景工作節點,您必須選取至少 8 個核心和 14 GB RAM 的前端節點大小。

如需詳細資訊,請參閱 VM 的大小。 如需各式大小的價格資訊,請參閱 HDInsight 價格

磁碟附件

注意

新增的磁碟只會針對節點管理員本機目錄進行設定, 而不是針對 datanode 目錄進行設定。

HDInsight 叢集隨附以版本為基礎的預先定義磁碟空間。 執行某些大型應用程式可能會導致磁碟空間不足,並出現磁碟完整錯誤 LinkId=221672#ERROR_NOT_ENOUGH_DISK_SPACE 和作業失敗。

您可以使用本機目錄新功能 NodeManager,將更多磁碟新增至叢集。 在Hive和Spark叢集建立時,您可以選取磁碟數目,並將其新增至背景工作節點。 選取的磁碟各可以是 1 TB,且屬於 NodeManager 本機目錄的一部分。

  1. 在 [組 態 + 定價 ] 索引標籤上,選取 [ 啟用受控磁碟]。
  2. [標準磁碟] 輸入磁碟數目。
  3. 選取您的背景工作節點。

您可以在 [叢集設定] 底下的 [檢閱 + 建立] 索引卷標上確認磁碟數目。

新增應用程式

您可以在以 Linux 為基礎的 HDInsight 叢集上安裝 HDInsight 應用程式。 您可以使用由Microsoft或第三方或您所開發的應用程式。 如需詳細資訊,請參閱在 Azure HDInsight 上安裝第三方 Apache Hadoop 應用程式

大部分的 HDInsight 應用程式會安裝在空白的邊緣節點。 空的邊緣節點是已安裝並設定為前端節點中相同用戶端工具的Linux VM。 您可以使用邊緣節點存取叢集,測試並託管您的用戶端應用程式。 如需詳細資訊,請參閱 Use empty edge nodes in HDInsight (在 HDInsight 中使用空白的邊緣節點)

指令碼動作

您可以在建立期間使用腳本來安裝更多元件或自訂叢集組態。 這類腳本是透過腳本動作叫用,這是您可以從 Azure 入口網站、HDInsight Windows PowerShell Cmdlet 或 HDInsight .NET SDK 使用的組態選項。 如需詳細資訊,請參閱 使用腳本動作自定義 HDInsight 叢集。

某些原生 Java 元件,例如 Apache Mahout 和級聯,可以在叢集上以 Java 封存 (JAR) 檔案的形式執行。 您可以使用Hadoop作業提交機制將這些JAR檔案散發至記憶體,並將其提交至 HDInsight 叢集。 如需詳細資訊,請參閱以程式設計方式提交 Apache Hadoop 作業

注意

如果您在將 JAR 檔案部署至 HDInsight 叢集或呼叫 HDInsight 叢集上的 JAR 檔案時發生問題,請連絡 Microsoft 支援服務

HDInsight 不支援串聯,且不符合 Microsoft 支援服務 資格。 如需所支援元件的清單,請參閱 HDInsight 所提供叢集版本的新功能

有時候,您可能要在建立程序期間設定下列組態檔:

  • clusterIdentity.xml
  • core-site.xml
  • gateway.xml
  • hbase-env.xml
  • hbase-site.xml
  • hdfs-site.xml
  • hive-env.xml
  • hive-site.xml
  • mapred-site
  • oozie-site.xml
  • oozie-env.xml
  • tez-site.xml
  • webhcat-site.xml
  • yarn-site.xml

如需詳細資訊,請參閱 使用 Bootstrap 自定義 HDInsight 叢集。