分享方式:


如何搭配 Apache Spark™ 叢集使用 Hive 中繼存放區

注意

AKS 上的 Azure HDInsight 將於 2025 年 1 月 31 日退場。 請於 2025 年 1 月 31 日之前,將工作負載移轉至 Microsoft Fabric 或對等的 Azure 產品,以免工作負載突然終止。 訂用帳戶中剩餘的叢集將會停止,並會從主機移除。

在淘汰日期之前,只有基本支援可用。

重要

此功能目前為預覽功能。 Microsoft Azure 預覽版增補使用規定包含適用於 Azure 功能 (搶鮮版 (Beta)、預覽版,或尚未正式發行的版本) 的更多法律條款。 若需此特定預覽版的相關資訊,請參閱 Azure HDInsight on AKS 預覽版資訊。 如有問題或功能建議,請在 AskHDInsight 上提交要求並附上詳細資料,並且在 Azure HDInsight 社群上追蹤我們以獲得更多更新資訊。

在多個服務之間共用資料中繼存放區是非常重要。 HIVE 中繼存放區中常用的中繼存放區之一。 AKS 上的 HDInsight 可讓使用者連線到外部中繼存放區。 此步驟可讓 HDInsight 使用者順暢地連線到生態系統中的其他服務。

AKS 上的 Azure HDInsight 支援自訂中繼存放區,這建議用於生產環境叢集。 涉及的關鍵步驟如下:

  1. 建立 Azure SQL 資料庫
  2. 建立金鑰保存庫以儲存認證
  3. 使用 Apache Spark™ 在 AKS 叢集上建立 HDInsight 時設定中繼存放區
  4. 在外部中繼存放區上操作 (顯示資料庫並執行選取限制 1)。

當您建立叢集時,HDInsight 服務必須連線到外部中繼存放區,並驗證您的認證。

建立 Azure SQL 資料庫

  1. 先建立或擁有現有的 Azure SQL Database,再設定 HDInsight 叢集的自訂 Hive 中繼存放區。

    注意

    目前,我們僅支持適用於 HIVE 中繼存放區的 Azure SQL Database。 由於 Hive 的限制,不支援中繼存放區資料庫名稱中的「-」(連字元)。

建立金鑰保存庫以儲存認證

  1. 建立 Azure Key Vault。

    Key Vault 的用途是讓您在 SQL 資料庫建立期間儲存 SQL Server 管理員密碼集合。 AKS 平台上的 HDInsight 不會直接處理認證。 因此,您必須將重要認證儲存在 Azure Key Vault 中。 了解建立 Azure Key Vault 的步驟。

  2. 建立 Azure Key Vault 之後,請指派下列角色

    Object 角色 備註
    使用者指派的受控識別 (與 HDInsight 叢集所使用的相同 UAMI) Key Vault 祕密使用者 了解如何將角色指派至 UAMI
    使用者 (在 Azure Key Vault 中建立秘密的人員) Key Vault 系統管理員 了解如何將角色指派至使用者

    注意

    如果沒有此角色,使用者就無法建立秘密。

  3. 建立密碼

    此步驟可讓您將 SQL Server 管理員密碼保留為 Azure Key Vault 中的秘密。 在新增秘密時,將您的密碼 (與 SQL DB 中提供給管理員的密碼相同) 新增在 [值] 欄位中。

    顯示如何建立金鑰保存庫的螢幕擷取畫面。

    顯示如何建立祕密的螢幕擷取畫面。

    注意

    請務必記下秘密名稱,因為您在建立叢集期間需要此名稱。

建立 HDInsight Spark 叢集時設定中繼存放區

  1. 瀏覽至 AKS 叢集集區上的 HDInsight 以建立叢集。

    顯示如何建立新叢集的螢幕擷取畫面。

  2. 啟用切換按鈕以新增外部 Hive 中繼存放區,並填入下列詳細資料。

    顯示基礎索引標籤的螢幕擷取畫面。

  3. 其餘詳細資料會根據 AKS 上 HDInsight 中 Apache Spark 叢集的叢集建立規則加以填入。

  4. 按一下 [檢閱及建立]

    顯示 [檢閱 + 建立] 索引標籤的螢幕擷取畫面。

    注意

    • 中繼存放區的生命週期未繫結至叢集生命週期,讓您可以建立和刪除叢集,而不會遺失中繼資料。 即使在刪除並重新建立 HDInsight 叢集之後,中繼資料 (例如 Hive 結構描述) 仍會保存。
    • 自訂中繼存放區可讓您將多個叢集與叢集類型連結至該中繼存放區。

在外部中繼存放區上操作

  1. 建立表格

    >> spark.sql("CREATE TABLE sampleTable (number Int, word String)")

    顯示如何建立資料表的螢幕擷取畫面。

  2. 將資料新增在資料表上

    >> spark.sql("INSERT INTO sampleTable VALUES (123, \"HDIonAKS\")");\

    顯示 INSERT 陳述式的螢幕擷取畫面。

  3. 讀取資料表

    >> spark.sql("select * from sampleTable").show()

    顯示如何讀取資料表的螢幕擷取畫面。

參考