使用 Data Lake Tools for Visual Studio 連線到 Azure HDInsight 並執行 Apache Hive 查詢

瞭解如何使用 Microsoft Azure Data Lake 和 Stream Analytics Tools for Visual Studio (Data Lake Tools)。 使用此工具連線到 Azure HDInsight 中的 Apache Hadoop 叢集,並提交 Hive 查詢。

如需使用 HDInsight 的詳細資訊,請參閱 開始使用 HDInsight

您可以使用 Data Lake Tools for Visual Studio 來存取 Azure Data Lake Analytics 和 HDInsight。 如需 Data Lake Tools 的相關信息,請參閱 使用 Data Lake Tools for Visual Studio 開發 U-SQL 腳本。

必要條件

若要完成本文並使用 Data Lake Tools for Visual Studio,您需要下列專案:

安裝 Data Lake Tools for Visual Studio

請遵循適當的指示,為您的 Visual Studio 版本安裝 Data Lake Tools:

  • 針對 Visual Studio 2017 或 Visual Studio 2019:

    在 Visual Studio 安裝期間,請確定您包含 Azure 開發 工作負載或 資料記憶體和處理 工作負載。

    針對現有的Visual Studio安裝,請移至IDE功能表欄,然後選取 [工具>取得工具和功能] 以開啟 Visual Studio 安裝程式。 在 [工作負載] 索引標籤中,至少選取 [Web 和雲端] 下的 Azure 開發工作負載。 或選取 [資料儲存和處理] 工作負載(在其他工具組底下)。

    Workload selection, Visual Studio Installer.

  • 針對 Visual Studio 2015:

    下載 Data Lake Tools。 選擇符合您 Visual Studio 版本的 Data Lake Tools 版本。

更新 Data Lake Tools for Visual Studio

接下來,請務必將 Data Lake Tools 更新為最新版本。

  1. 開啟 Visual Studio。

  2. 在 [ 開始] 視窗中,選取 [ 不使用程式代碼繼續]。

  3. 在 Visual Studio IDE 功能表欄中,選擇 [擴充功能>管理擴充功能]。

  4. 在 [管理延伸模組] 對話框中,展開 [更新] 節點。

  5. 如果可用的更新清單包含 Azure Data Lake 和串流分析工具,請加以選取。 然後選取其 [更新] 按鈕。 在 [下載並安裝 ] 對話框出現並消失之後,Visual Studio 會將 Azure Data Lake 和串流分析工具 擴充功能新增至更新排程。

  6. 關閉所有 Visual Studio 視窗。 VSIX 安裝程式對話框隨即出現。

  7. 選取 [授權 ] 以讀取授權條款,然後選取 [ 關閉 ] 以返回 VSIX 安裝程式 對話方塊。

  8. 選取 [修改]。 擴充功能更新的安裝開始。 一段時間之後,對話框會變更以顯示已完成修改。 選取 [ 關閉],然後重新啟動 Visual Studio 以完成安裝。

注意

您只能使用 Data Lake Tools 2.3.0.0 版或更新版本來連線到互動式查詢叢集,並執行互動式 Hive 查詢。

連線 至 Azure 訂用帳戶

您可以使用 Data Lake Tools for Visual Studio 連線到 HDInsight 叢集、執行一些基本管理作業,以及執行 Hive 查詢。

注意

如需連線到一般 Hadoop 叢集的資訊,請參閱 如何使用 Visual Studio 撰寫和提交 Hive 查詢。

連線到 Azure 訂閱

若要連線到您的 Azure 訂用帳戶:

  1. 開啟 Visual Studio。

  2. 在 [ 開始] 視窗中,選取 [ 不使用程式代碼繼續]。

  3. 在 IDE 選單欄中,選擇 [檢視>伺服器總管]。

  4. 在 [伺服器總管] 中,以滑鼠右鍵按兩下 [Azure],選取 [連線 至 Microsoft Azure 訂用帳戶],然後完成驗證程式。 從 [伺服器總管] 展開 [Azure>HDInsight] 以檢視現有 HDInsight 叢集的清單。

  5. 如果您沒有任何叢集,請使用 Azure 入口網站、Azure PowerShell 或 HDInsight SDK 來建立一個叢集。 如需詳細資訊,請參閱 在 HDInsight 中設定叢集。

    HDInsight cluster list, Server Explorer, Visual Studio.

  6. 展開 HDInsight 叢集。 叢集包含Hive資料庫的節點。 此外,預設記憶體帳戶、任何其他鏈接的記憶體帳戶,以及 Hadoop 服務記錄檔。 您可以進一步擴充實體。

連線到 Azure 訂用帳戶之後,您可以執行下列工作。

從 Visual Studio 連線 至 Azure

若要從 Visual Studio 連線到 Azure 入口網站:

  1. [伺服器總管] 中,展開 [Azure>HDInsight],然後選取您的叢集。

  2. 以滑鼠右鍵按兩下 HDInsight 叢集,然後選取 [管理 Azure 入口網站 中的叢集。

從 Visual Studio 提供問題和意見反應

若要提出問題,或從 Visual Studio 提供意見反應:

  1. 從 [伺服器總管] 中,選擇 [Azure>HDInsight]。

  2. 以滑鼠右鍵按兩下 [HDInsight ],然後選取 [MSDN 論壇 ] 以提出問題,或 提供意見 反應來提供意見反應。

注意

您目前唯一可以連結的 HDInsight 叢集類型是 Hive 類型。

連結 HDInsight 叢集:

  1. 以滑鼠右鍵按兩下 [HDInsight],然後選取 [ 鏈接 HDInsight 叢集 ] 以顯示 [ 連結 HDInsight 叢集 ] 對話框。

  2. 以格式https://CLUSTERNAME.azurehdinsight.net輸入 連線 ion URL。 當您移至另一個字段時,叢 集名稱 會自動填入您URL的叢集名稱部分。 然後輸入 [ 用戶名稱 ] 和 [密碼],然後選取 [ 下一步]。

    Link a cluster, HDInsight, Visual Studio.

  3. 選取 [完成]。 如果叢集連結成功,叢集就會列在 HDInsight 節點底下。

若要更新連結的叢集,請以滑鼠右鍵按兩下叢集,然後選取 [ 編輯]。 然後,您可以更新叢集資訊。

Edit a linked cluster, HDInsight, Visual Studio.

探索鏈接的資源

從 [伺服器總管] 中,您可以看到預設記憶體帳戶和任何鏈接的記憶體帳戶。 如果您展開預設記憶體帳戶,您可以在記憶體帳戶上看到容器。 默認記憶體帳戶和預設容器會標示。

Data Lake Tools for Visual Studio linked resources in Server Explorer.

以滑鼠右鍵按兩下容器,然後選取 [檢視容器 ] 以檢視容器的內容。 開啟容器之後,您可以使用工具列按鈕來重新整理內容清單、上傳 Blob、刪除選取的 Blob開啟 Blob,以及下載 [另存新檔] 選取的 Blob。

Container list and blob operations, HDInsight cluster, Visual Studio.

執行互動式 Apache Hive 查詢

Apache Hive 是建置在 Hadoop 上的數據倉儲基礎結構。 Hive 用於數據摘要、查詢和分析。 您可以使用 Data Lake Tools for Visual Studio 從 Visual Studio 執行 Hive 查詢。 如需Hive的詳細資訊,請參閱 什麼是 Azure HDInsight 上的 Apache Hive 和 HiveQL?

Azure HDInsight 中的互動式查詢會在 Apache Hive 2.1 的 LLAP 上使用 Hive。 互動式查詢可為大型預存數據集上的複雜數據倉儲樣式查詢帶來互動性。 在互動式查詢上執行Hive查詢比傳統的Hive批次作業快得多。

您也可以使用 Data Lake Tools for Visual Studio 來查看 Hive 作業內的內容。 Data Lake Tools for Visual Studio 會收集並呈現特定 Hive 作業的 Yarn 記錄。

[伺服器總管] 中,選擇 [Azure>HDInsight],然後選取您的叢集。 此節點是 [伺服器總管] 中要遵循的區段起點。

檢視 hivesampletable

所有 HDInsight 叢集都有稱為 hivesampletable的預設範例 Hive 數據表。

從您的叢集中,選擇 [Hive 資料庫>] 預設>hivesampletable。

  • 若要檢視 hivesampletable 架構:

    展開 hivesampletable。 會顯示資料行的名稱 hivesampletable 和數據類型。

  • 若要檢視 hivesampletable 數據:

    以滑鼠右鍵按兩下 [hivesampletable],然後選取 [ 檢視前 100 個數據列]。 100 個結果的清單會出現在 Hive 資料表:hivesampletable 視窗中。 此動作相當於使用 Hive ODBC 驅動程式執行下列 Hive 查詢:

    SELECT * FROM hivesampletable LIMIT 100

    您可以藉由變更 資料列數目來自定義數據列計數;您可以從下拉式清單中選擇 50、100、200 或 1000 個數據列。

建立Hive數據表

若要建立Hive資料表,您可以使用 GUI 或使用 Hive 查詢。 如需使用Hive查詢的相關信息,請參閱 建立和執行Hive查詢

  1. 從您的叢集中,選擇 [Hive 資料庫>] 預設值。

  2. 以滑鼠右鍵按兩下 預設值,然後選取 [ 建立資料表]。

  3. 設定數據表。

  4. 選取 [ 建立數據表 ] 按鈕以提交作業,以建立新的Hive數據表。

    Create Table window, Hive, HDInsight cluster, Visual Studio.

建立和執行Hive查詢

您有兩個選項可建立和執行 Hive 查詢:

  • 建立臨機操作查詢
  • 建立 Hive 應用程式

建立臨機操作查詢

若要建立並執行臨機操作查詢:

  1. 以滑鼠右鍵按下您要執行查詢的叢集,然後選取 [ 撰寫 Hive 查詢]。

  2. 輸入Hive查詢。

    Hive 編輯器支援 Intellisense。 Data Lake Tools for Visual Studio 支援在編輯 Hive 指令碼時載入遠端中繼資料。 例如,如果您輸入 SELECT * FROM,IntelliSense 會列出所有建議的資料表名稱。 若已指定資料表名稱,IntelliSense 會列出資料行名稱。 此工具支援大部分的 Hive DML 陳述式、子查詢及內建 UDF。

    IntelliSense example 1, Hive ad-hoc query, HDInsight cluster, Visual Studio.

    IntelliSense example 2, Hive ad-hoc query, HDInsight cluster, Visual Studio.

    注意

    IntelliSense 只建議 HDInsight 工具列中已選取的叢集中繼資料。

    以下是您可以使用的範例查詢:

    SELECT devicemodel, COUNT(devicemodel) AS deviceCount
    FROM hivesampletable
    GROUP BY devicemodel
    ORDER BY devicemodel
    
  3. 選擇執行模式:

    • Interactive

      在第一個下拉式清單中,選擇 [互動式],然後選取 [ 執行]。

      Interactive mode, Hive ad-hoc query, HDInsight cluster, Visual Studio.

    • Batch

      在第一個下拉式清單中,選擇 [Batch],然後選取 [ 提交]。 或選取 [提交] 旁的下拉式圖示,然後選擇 [進階]。

      Batch mode, Hive ad-hoc query, HDInsight cluster, Visual Studio.

      如果您選取 [進階提交] 選項,[ 提交腳本 ] 對話框隨即出現。 設定文稿的 作業名稱自變數其他組態狀態目錄

      Submit Script dialog box, Hive ad-hoc query, HDInsight cluster, Visual Studio.

      注意

      您無法將批次提交至互動式查詢叢集。 您必須使用互動式模式。

建立 Hive 應用程式

若要建立和執行 Hive 解決方案:

  1. 從功能表欄中,選擇 [ 檔案>>專案]。

  2. 在 [ 建立新專案 ] 視窗中,選取搜尋方塊並輸入 Hive。 然後選擇 [Hive 應用程式],並選取 [下一步]

  3. 在 [設定新專案] 視窗中,輸入 [專案名稱],選取或建立專案 [位置],然後選取 [建立]。

    New Hive application, Configure your new project window, HDInsight Visual Studio.

  4. 方案總管 中,按兩下 Script.hql 以開啟腳本。

檢視作業摘要和輸出

作業摘要在 Batch互動式模式之間稍有不同。

Hive job summary windows, batch and interactive mode, Visual Studio.

使用 [重新整理] 圖示來更新狀態,直到作業狀態變更為 [完成]。

  • 如需 Batch 模式的作業詳細數據,請選取底部的連結以查看作業查詢作業輸出作業記錄,或檢視 Yarn 記錄

  • 如需互動式模式的作業詳細數據,請參閱 [輸出] 和 [HiveServer2 輸出] 窗格。

    Hive interactive job output, HDInsight cluster, Visual Studio.

檢視作業圖形

目前,只有使用 Tez 作為執行引擎的 Hive 作業才會顯示作業圖表。 如需啟用 Tez 的相關信息,請參閱 什麼是 Azure HDInsight 上的 Apache Hive 和 HiveQL?。 另 請參閱使用 Apache Tez 而非 Map Reduce

若要檢視頂點內的所有運算符,請按兩下作業圖形的頂點。 您也可以指向特定運算符,以查看有關 運算子的詳細數據。

即使 Tez 已指定為執行引擎,如果未啟動 Tez 應用程式,作業圖形可能不會顯示。 這種情況可能會因為作業不包含 DML 語句而發生。 或者,因為 DML 語句可以在不啟動 Tez 應用程式的情況下傳回。 例如, SELECT * FROM table1 不會啟動 Tez 應用程式。

Apache Hive job graph, Visual Studio.

檢視工作執行詳細數據

從作業圖表中,您可以選取 [工作執行詳細數據 ],以取得Hive作業的結構化和可視化資訊。 您也可以取得更多作業詳細數據。 如果發生效能問題,您可以使用檢視來取得問題的詳細數據。 例如,您可以擷取每個工作運作方式的相關信息,以及每個工作的詳細資訊(數據讀取/寫入、排程/開始/結束時間等等)。 使用資訊,根據可視化資訊調整作業組態或系統架構。

Task Execution View window, Data Lake Visual Studio Tools.

檢視Hive作業

您可以檢視 Hive 作業的作業查詢、作業輸出、作業記錄和 Yarn 記錄。

在最新版的工具中,您可以收集並顯示 Yarn 記錄,以查看 Hive 作業內的內容。 Yarn 記錄可協助您調查效能問題。 如需 HDInsight 如何收集 Yarn 記錄的詳細資訊,請參閱 存取 Apache Hadoop YARN 應用程式記錄

若要檢視 Hive 作業:

  1. 以滑鼠右鍵按兩下 HDInsight 叢集,然後選取 [ 檢視作業]。

    View Jobs, Apache Hive, HDInsight cluster, Visual Studio.

    叢集上執行的Hive作業清單隨即出現。

  2. 選取作業。 在 [ Hive 作業摘要 ] 視窗中,選取下列其中一個連結:

    • 作業查詢
    • 作業輸出
    • 作業記錄檔
    • Yarn 記錄檔

執行 Apache Pig 腳本

  1. 從功能表欄中,選擇 [ 檔案>>專案]。

  2. 在 [ 開始] 視窗中,選取搜尋方塊並輸入 Pig。 然後選取 [Pig 應用程式 ],然後選取 [ 下一步]。

  3. 在 [設定新專案] 視窗中,輸入 [專案名稱],然後選取或建立專案的 [位置]。 然後選取建立

  4. 在 [IDE 方案總管] 窗格中,按兩下 Script.pig 以開啟腳本。

意見反應和已知問題

  • 未顯示以 Null 值開頭的結果已修正的問題。 如果您在此問題上遭到封鎖,請連絡支援小組。

  • Visual Studio 所建立的 HQL 腳本會根據使用者的本機區域設定進行編碼。 如果您以二進位檔的形式將腳本上傳至叢集,腳本將無法正確執行。

下一步

在本文中,您已瞭解如何使用 Data Lake Tools for Visual Studio 套件從 Visual Studio 連線到 HDInsight 叢集。 您也已瞭解如何執行Hive查詢。