使用 Azure 入口網站建立搭配 Azure Data Lake Storage Gen1 的 HDInsight 叢集
了解如何利用 Azure 入口網站,建立以 Azure Data Lake Storage Gen1 作為預設儲存體或其他儲存體的 HDInsight 叢集。 即使其他儲存體是 HDInsight 叢集的選用項目,還是建議將您的商務資料儲存在其他儲存體帳戶中。
必要條件
在開始之前,請確保您已符合下列需求:
- Azure 訂用帳戶。 請移至取得 Azure 免費試用。
- Azure Data Lake Storage Gen1 帳戶。 遵循使用 Azure 入口網站開始使用 Azure Data Lake Storage Gen1 的指示操作。 您也必須在此帳戶上建立根資料夾。 在本文中,會使用名為 /clusters 的根資料夾。
- Microsoft Entra 服務主體。 本操作指南提供如何在 Microsoft Entra ID 中建立服務主體的指示。 不過,若要建立服務主體,您必須是 Microsoft Entra 系統管理員。 如果您是系統管理員,就可以略過這項先決條件並繼續進行。
注意
只有在您是 Microsoft Entra 系統管理員時,才能建立服務主體。 您的 Microsoft Entra 系統管理員必須先建立服務主體,才能建立具有 Data Lake Storage Gen1 的 HDInsight 叢集。 此外,必須使用憑證來建立服務主體,如使用憑證來建立服務主體所述。
建立 HDInsight 叢集
在此節中,您會建立一個使用 Data Lake Storage Gen1 作為預設或其他儲存體的 HDInsight 叢集。 此文章僅著重於設定 Data Lake Storage Gen1 的部分。 如需一般叢集建立資訊和程序,請參閱 在 HDInsight 中建立 Hadoop 叢集。
建立以 Data Lake Storage Gen1 做為預設儲存體的叢集
建立以 Data Lake Storage Gen1 作為預設儲存體帳戶的 HDInsight 叢集:
登入 Azure 入口網站。
請遵循建立叢集,以取得建立 HDInsight 叢集的一般資訊。
在 [儲存體] 刀鋒視窗的 [主要儲存體類型] 下,選取 [Azure Data Lake Storage Gen1],然後輸入下列資訊:
- 選取 Data Lake Store 帳戶: 選取現有的 Data Lake Storage Gen1 帳戶。 需要現有的 Data Lake Storage Gen1 帳戶。 請參閱必要條件。
- 根路徑:輸入要儲存叢集特定檔案的路徑。 在螢幕擷取畫面上,它是 /clusters/myhdiadlcluster/,其中 /clusters 資料夾必須已存在,而入口網站會建立 myhdicluster 資料夾。 myhdicluster 是叢集名稱。
- Data Lake Store 存取:設定 Data Lake Storage Gen1 帳戶與 HDInsight 叢集之間的存取。 如需指示,請參閱設定 Data Lake Storage Gen1 存取。
- 其他儲存體帳戶:新增 Azure 儲存體帳戶作為叢集的其他儲存體帳戶。 若要新增其他 Data Lake Storage Gen1 帳戶,做法是設定某個 Data Lake Storage Gen1 帳戶作為主要儲存體類型,同時授與叢集存取其他 Data Lake Storage Gen1 帳戶資料的權限。 設定 Data Lake Storage Gen1 存取。
在 [Data Lake Store 存取權] 上按一下 [選取],然後繼續進行叢集建立作業,如在 HDInsight 中建立 Hadoop 叢集所述。
建立以 Data Lake Storage Gen1 做為額外儲存體的叢集
依下列指示操作,即可建立以 Azure Blob 儲存體帳戶作為預設儲存體的 HDInsight 叢集,以及以 Data Lake Storage Gen1 作為其他儲存體的儲存體帳戶。
建立以 Data Lake Storage Gen1 作為額外儲存體的 HDInsight 叢集:
登入 Azure 入口網站。
請遵循建立叢集,以取得建立 HDInsight 叢集的一般資訊。
在 [儲存體] 刀鋒視窗的 [主要儲存體類型] 下,選取 [Azure 儲存體],然後輸入下列資訊:
選取方法 - 若要指定屬於 Azure 訂用帳戶的儲存體帳戶,請選取 [我的訂用帳戶],然後選取儲存體帳戶。 若要指定 Azure 訂用帳戶外部的儲存體帳戶,請選取 [存取金鑰],然後提供外部儲存體帳戶資訊。
預設容器 - 使用預設值或指定您自己的名稱。
其他儲存體帳戶 - 新增其他 Azure 儲存體帳戶作為額外儲存體。
Data Lake Store 存取 - 設定 Data Lake Storage Gen1 帳戶與 HDInsight 叢集之間的存取。 如需指示,請參閱設定 Data Lake Storage Gen1 存取。
設定 Data Lake Storage Gen1 存取
在本節中,您會使用 Microsoft Entra 服務主體,設定從 HDInsight 叢集 Data Lake Storage Gen1 存取。
指定服務主體
從 Azure 入口網站中,您可以使用現有的服務主體或建立一個新的服務主體。
從 Azure 入口網站中建立服務主體:
- 請參閱使用 Microsoft Entra ID 建立服務主體和憑證。
使用 Azure 入口網站中現有的服務主體:
服務主體應具有儲存體帳戶的擁有者權限。 請參閱將服務主體的權限設定為儲存體帳戶的擁有者。
選取 [Data Lake Store 存取]。
在 [Data Lake Storage Gen1 存取] 刀鋒視窗中,選取 [使用現有項目]。
選取 [服務主體],然後選取一個服務主體。
上傳與您所選取服務主體建立關聯的憑證 (.pfx 檔案),然後輸入憑證密碼。
選取 [存取] 來設定資料夾存取。 請參閱設定檔案權限。
將服務主體的權限設定為儲存體帳戶的擁有者
- 在儲存體帳戶的 [存取控制 (IAM)] 刀鋒視窗上,按一下 [新增角色指派]。
- 在 [新增角色指派] 刀鋒視窗上,選取角色為「擁有者」,然後選取 SPN 並按一下 [儲存]。
設定檔案權限
此設定將有所不同,取決於帳戶是作為預設儲存體帳戶還是其他儲存體帳戶:
作為預設儲存體
- Data Lake Storage Gen1 帳戶根層級的權限
- HDInsight 叢集儲存體根層級的權限。 例如,稍早在教學課程中使用的 /clusters 資料夾。
作為其他儲存體
- 您需要其檔案存取權之資料夾的權限。
若要在根層級為使用 Data Lake Storage Gen1 的儲存體帳戶指派權限:
在 [Data Lake Storage Gen1 存取] 刀鋒視窗中,選取 [存取]。 隨即會開啟 [選取檔案權限] 刀鋒視窗。 其中列出您訂用帳戶中的所有儲存體帳戶。
請將滑鼠游標暫留 (請勿按一下) 在使用 Data Lake Storage Gen1 的帳戶名稱上,以顯示核取方塊,然後選取此核取方塊。
根據預設,READ、WRITE 和 EXECUTE 會全部選取。
按一下頁面底部的 [選取]。
選取 [執行] 來指派權限。
選取 [完成]。
指派 HDInsight 叢集根層級的權限:
- 在 [Data Lake Storage Gen1 存取] 刀鋒視窗中,選取 [存取]。 隨即會開啟 [選取檔案權限] 刀鋒視窗。 其中列出您訂用帳戶中所有使用 Data Lake Storage Gen1 的儲存體帳戶。
- 從 [選取檔案權限] 刀鋒視窗中,選取使用 Data Lake Storage Gen1 的儲存體帳戶名稱以顯示相關內容。
- 選取 HDInsight 叢集儲存體根目錄左邊的核取方塊,即可選取該資料夾。 根據先前的螢幕擷取畫面,叢集儲存體根目錄為您在選取 Data Lake Storage Gen1 作為預設儲存體時所指定的 /clusters 資料夾。
- 設定資料夾的權限。 根據預設,讀取、寫入和執行會全部選取。
- 按一下頁面底部的 [選取]。
- 選取 [執行]。
- 選取 [完成]。
如果您使用 Data Lake Storage Gen1 作為額外儲存體,則必須僅針對您想要從 HDInsight 叢集存取的資料夾指派權限。 例如,在下方的螢幕擷取畫面中,您僅會針對使用 Data Lake Storage Gen1 的儲存體帳戶中的 mynewfolder 資料夾提供存取權。
驗證叢集設定
叢集設定完成之後,在叢集刀鋒視窗上執行下列任一或這兩個步驟來驗證結果:
若要驗證與叢集相關聯的儲存體是否為您所指定使用 Data Lake Storage Gen1 的帳戶,請選取左窗格中的 [儲存體帳戶]。
若要驗證服務主體是否與 HDInsight 叢集正確建立關聯,請選取左窗格中的 [Data Lake Storage Gen1 存取]。
範例
在您設定以 Data Lake Storage Gen1 作為儲存體的叢集之後,請參閱一些範例,請見以下範例,了解如何使用 HDInsight 叢集來分析 Data Lake Storage Gen1 中儲存的資料。
針對 Data Lake Storage Gen1 (作為主要儲存體) 中的資料執行 Hive 查詢
若要執行 Hive 查詢,請使用 Ambari 入口網站中的 Hive 檢視介面。 如需有關如何使用 Ambari Hive 檢視的指示,請參閱在 HDInsight 中搭配 Hadoop 使用 Hive 檢視。
當您使用 Data Lake Storage Gen1 中的資料時,有幾個字串必須變更。
例如,如果您使用以 Data Lake Storage Gen1 作為主要儲存體而建立的叢集,則資料路徑為︰adl://<data_lake_storage_gen1_account_name>/azuredatalakestore.net/path/to/file。 從 Data Lake Storage Gen1 中儲存的範例資料建立資料表的 Hive 查詢,類似於下列陳述式:
CREATE EXTERNAL TABLE websitelog (str string) LOCATION 'adl://hdiadlsg1storage.azuredatalakestore.net/clusters/myhdiadlcluster/HdiSamples/HdiSamples/WebsiteLogSampleData/SampleLog/'
說明:
-
adl://hdiadlsg1storage.azuredatalakestore.net/
是使用 Data Lake Storage Gen1 的帳戶的根。 -
/clusters/myhdiadlcluster
是您在建立叢集時指定之叢集資料的根目錄。 -
/HdiSamples/HdiSamples/WebsiteLogSampleData/SampleLog/
是您在查詢中使用之範例檔案的位置。
針對 Data Lake Storage Gen1 (作為額外儲存體) 中的資料執行 Hive 查詢
如果您建立的叢集使用 Blob 儲存體作為預設儲存體,則範例資料不會包含在以 Data Lake Storage Gen1 作為額外儲存體的儲存體帳戶中。 在這種情況下,請先將資料從 Blob 儲存體傳送至使用 Data Lake Storage Gen1 的儲存體帳戶,然後如上述範例所示執行查詢。
如需了解如何將資料從 Blob 儲存體複製到使用 Data Lake Storage Gen1 的儲存體帳戶,請參閱下列文章:
- 使用 Distcp 在 Azure Blob 儲存體與 Data Lake Storage Gen1 之間複製資料
- 使用 AdlCopy 將資料從 Azure Blob 儲存體複製到 Data Lake Storage Gen1
使用 Data Lake Storage Gen1 搭配 Spark 叢集
您可以使用 Spark 叢集對 Data Lake Storage Gen1 中儲存的資料執行 Spark 作業。 如需詳細資訊,請參閱使用 HDInsight Spark 叢集來分析 Data Lake Storage Gen1 中的資料。