使用 Data Lake Tools for Visual Studio 連線至 Azure HDInsight 及執行 Apache Hive 查詢
了解如何使用適用於 Visual Studio 的 Microsoft Azure Data Lake 和串流分析工具 (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,您需要下列項目:
Azure HDInsight 叢集。 若要建立 HDInsight 叢集,請參閱在 Azure HDInsight 中開始使用 Apache Hadoop。 若要執行互動式 Apache Hive 查詢,您需要 HDInsight 互動式查詢叢集。
Visual Studio。 Visual Studio Community 版本免費。 此處顯示的指示適用於 Visual Studio 2019。
安裝 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 安裝程式。 在 [工作負載] 索引標籤中,至少選取 [Azure 開發] 工作負載 (位於 [Web 與雲端] 下方)。 或選取 [資料儲存和處理] 工作負載 (位於 [其他工具集] 下方)。
若為 Visual Studio 2015:
下載 Data Lake Tools。 選擇與您的 Visual Studio 版本相符的 Data Lake Tools 版本。
更新適用於 Visual Studio 的 Data Lake Tools
接下來,請務必將 Data Lake Tools 更新為最新版本。
開啟 Visual Studio。
在 [開始] 視窗中,選取 [不使用程式碼繼續]。
在 [Visual Studio IDE] 功能表列中,選擇 [擴充功能]>[管理擴充功能]。
在 [管理擴充功能] 對話方塊中,展開 [更新] 節點。
如果可用的更新清單包含 Azure Data Lake 和串流分析工具,請選取此項目。 然後選取其 [更新] 按鈕。 在 [下載並安裝] 對話方塊出現並消失之後,Visual Studio 會將 Azure Data Lake 和串流分析工具擴充功能新增至更新排程。
關閉所有 Visual Studio 視窗。 即會出現 [VSIX 安裝程式] 對話方塊。
選取 [授權] 以閱讀授權條款,然後選取 [關閉] 以返回 [VSIX 安裝程式] 對話方塊。
選取 [修改]。 即會開始安裝擴充功能更新。 然後對話方塊就會變更,顯示已完成修改。 選取 [關閉],然後重新啟動 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 訂用帳戶:
開啟 Visual Studio。
在 [開始] 視窗中,選取 [不使用程式碼繼續]。
在 IDE 功能表列中,選擇 [檢視]>[伺服器總管]。
在 [伺服器總管] 中,用滑鼠右鍵按一下 [Azure],選取 [連接到 Microsoft Azure 訂用帳戶],然後完成驗證流程。 從 [伺服器總管] 展開 [Azure]>[HDInsight] 以檢視現有的 HDInsight 叢集清單。
如果您沒有任何叢集,可以使用 Azure 入口網站、Azure PowerShell 或 HDInsight SDK 來建立一個。 如需詳細資訊,請參閱在 HDInsight 中設定叢集。
展開某個 HDInsight 叢集。 叢集包含 Hive 資料庫的節點。 此外,也包含了預設的儲存體帳戶、任何額外連結的儲存體帳戶,以及 Hadoop 服務記錄。 您可以進一步展開這些實體。
在連線到您的 Azure 訂用帳戶之後,您可以執行下列工作。
從 Visual Studio 連接到 Azure
若要從 Visual Studio 連線到 Azure 入口網站:
在 [伺服器總管] 中,展開 [Azure]>[HDInsight],然後選取您的叢集。
在 HDInsight 叢集上按一下滑鼠右鍵,然後選取 [在 Azure 入口網站中管理叢集]。
從 Visual Studio 提出問題及提供意見反應
若要從 Visual Studio 提出問題或提供意見反應:
從 [伺服器總管] 中,選擇 [Azure]>[HDInsight]。
用滑鼠右鍵按一下 [HDInsight],然後選取 [MSDN 論壇] 以提出問題,或 [提供意見反應] 來提供意見。
連結或編輯叢集
注意
目前,您唯一可以連結的 HDInsight 叢集類型是 Hive 類型。
連結 HDInsight 叢集:
用滑鼠右鍵按一下 [HDInsight],然後選取 [連結 HDInsight 叢集] 以顯示 [連結 HDInsight 叢集] 對話方塊。
在表單
https://CLUSTERNAME.azurehdinsight.net
中輸入 [連線 URL]。 當您移至其他欄位時,[叢集名稱] 會自動填入 URL 中的叢集名稱部分。 然後輸入 [使用者名稱] 和 [密碼],並選取 [下一步]。選取 [完成]。 如果叢集連結成功,叢集就會列在 [HDInsight] 節點下方。
若要更新連結的叢集,請用滑鼠右鍵按一下叢集,然後選取 [編輯]。 然後,您就可以更新叢集資訊。
瀏覽連結的資源
從 [伺服器總管] 中,您可以看到預設的儲存體帳戶,以及任何連結的儲存體帳戶。 如果您展開預設儲存體帳戶,您可以看到儲存體帳戶上的容器。 預設儲存體帳戶和預設容器皆已標示。
用滑鼠右鍵按一下容器,然後選取 [檢視容器] 以檢視容器的內容。 開啟容器之後,您可以使用工具列按鈕來 [重新整理] 內容清單、[更新 Blob]、[刪除選取的 Blob]、[開啟 Blob],以及下載 ([另存新檔]) 選取的 Blob。
執行互動式 Apache Hive 查詢
Apache Hive 是以 Hadoop 為基礎的資料倉儲基礎結構。 Hive 用於進行資料彙整、查詢及分析。 您可以使用 Data Lake Tools for Visual Studio 從 Visual Studio 執行 Hive 查詢。 如需 Hive 的詳細資訊,請參閱什麼是 Azure HDInsight 上的 Apache Hive 和 HiveQL?。
Azure HDInsight 中的 Interactive Query 使用 Apache Hive 2.1 中的 LLAP。 Interactive Query 可讓您在大型的已儲存資料集上,以互動方式執行複雜的資料倉儲樣式查詢。 相較於傳統的 Hive 批次作業,在 Interactive Query 上執行 Hive 查詢的速度較快。
注意
只有在您連線到 HDInsight 互動式查詢叢集時,您才可以執行互動式 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 查詢。
在您的叢集中,選擇 [Hive 資料庫]>[預設]。
用滑鼠右鍵按一下 [預設],然後選取 [建立資料表]。
設定資料表。
選取 [建立資料表] 按鈕以提交作業,此作業會建立新的 Hive 資料表。
建立和執行 Hive 查詢
您有兩個選項可建立和執行 Hive 查詢:
- 建立特定查詢
- 建立 Hive 應用程式
建立特定查詢
建立和執行特定查詢:
在您想要執行查詢的叢集上按一下滑鼠右鍵,然後選取 [撰寫 Hive 查詢]。
輸入 Hive 查詢。
Hive 編輯器支援 Intellisense。 Data Lake Tools for Visual Studio 支援在編輯 Hive 指令碼時載入遠端中繼資料。 例如,如果您輸入
SELECT * FROM
,IntelliSense 會列出所有建議的資料表名稱。 若已指定資料表名稱,IntelliSense 會列出資料行名稱。 此工具支援大部分的 Hive DML 陳述式、子查詢及內建 UDF。注意
IntelliSense 只建議 HDInsight 工具列中已選取的叢集中繼資料。
以下是您可以使用的範例查詢:
SELECT devicemodel, COUNT(devicemodel) AS deviceCount FROM hivesampletable GROUP BY devicemodel ORDER BY devicemodel
選擇執行模式:
Interactive
在第一個下拉式清單中,選擇 [互動],然後選取 [執行]。
Batch
在第一個下拉式清單中,選擇 [批次],然後選取 [提交]。 或者選取 [提交] 旁的下拉式圖示,然後選擇 [進階]。
如果您選取進階提交選項,即會出現 [提交指令碼] 對話方塊。 設定指令碼的 [作業名稱]、[引數]、[其他組態] 和 [狀態目錄]。
注意
您無法將批次提交至 Interactive Query 叢集。 您必須使用互動模式。
建立 Hive 應用程式
若要建立和執行 Hive 解決方案:
從功能表列中,選擇 [檔案]>[新增]>[專案]。
在 [建立新專案] 視窗中,選取搜尋方塊並輸入 Hive。 然後選擇 [Hive 應用程式],並選取 [下一步]。
在 [設定新專案] 視窗中,輸入 [專案名稱],選取或建立專案 [位置],然後選取 [建立]。
在 [方案總管] 中,按兩下 Script.hql 來開啟指令碼。
檢視作業摘要和輸出
批次和互動模式中的作業摘要會略有不同。
使用 [重新整理] 圖示來更新狀態,直到工作狀態變更為 [完成] 為止。
如需批次模式中的作業詳細資料,請選取底部的連結以查看 [作業查詢]、[作業輸出] 或 [作業記錄],或 [檢視 Yarn 記錄]。
如需互動模式中的作業詳細資料,請參閱 [輸出] 和 [HiveServer2 輸出] 窗格。
檢視作業圖表
目前,只有使用 Tez 作為執行引擎的 Hive 作業才會顯示作業圖表。 如需啟用 Tez 的詳細資訊,請參閱什麼是 Azure HDInsight 上的 Apache Hive 和 HiveQL?。 另請參閱使用 Apache Tez 而非 Map Reduce。
若要檢視頂點內的所有運算子,請按兩下作業圖表的頂點。 您也可以指向特定運算子,以查看有關運算子的更多詳細資料。
即使將 Tez 指定為執行引擎,如果未啟動任何 Tez 應用程式,作業圖表不會顯示。 發生這種情況的原因可能是作業不包含 DML 陳述式。 或者,因為 DML 陳述式可以在不啟動 Tez 應用程式的情況下傳回。 例如,SELECT * FROM table1
不會啟動 Tez 應用程式。
檢視工作執行詳細資料
從作業圖表中,您可以選取 [工作執行詳細資料],以取得 Hive 作業的結構化和視覺化資訊。 您也可以取得更多作業詳細資料。 如果發生效能問題,您可以使用此檢視來取得有關問題的更多詳細資料。 例如,您可以擷取每個工作的運作方式資訊,以及每個工作的詳細資訊 (資料讀取/寫入、排程/開始/結束時間及其他)。 使用此資訊,根據視覺化資訊來微調作業組態或系統架構。
檢視 Hive 工作
您可以檢視 Hive 工作的工作查詢、工作輸出、工作記錄和 Yarn 記錄。
在工具的最新版本中,您可以藉由收集和呈現 Yarn 記錄來查看 Hive 作業的內容。 Yarn 記錄可協助您調查效能問題。 如需 HDInsight 如何收集 Yarn 記錄的詳細資訊,請參閱存取 Apache Hadoop YARN 應用程式記錄檔。
若要檢視 Hive 作業:
在某個 HDInsight 叢集上按一下滑鼠右鍵,然後選取 [檢視作業]。
在該叢集上執行的 Hive 作業清單隨即出現。
選取一個工作。 在 [Hive 作業摘要] 視窗中,選取下列其中一項連結:
- 作業查詢
- 工作輸出
- 作業記錄
- Yarn 記錄
執行 Apache Pig 指令碼
從功能表列中,選擇 [檔案]>[新增]>[專案]。
在 [開始] 視窗中,選取搜尋方塊,然後輸入 Pig。 選取 [Pig 應用程式],然後選取 [下一步]。
在 [設定新專案] 視窗中,輸入 [專案名稱],然後選取或建立專案的 [位置]。 然後選取建立。
在 IDE 的 [方案總管] 窗格中,按兩下 Script.pig 以開啟指令碼。
意見反應和已知問題
尚未修正以下問題:未顯示以 null 值開頭的結果。 如果您因為此問題而遭到封鎖,請連絡支援小組。
Visual Studio 所建立的 HQL 指令碼是根據使用者的所在區域設定進行編碼。 如果您將指令碼當作二進位檔案上傳到叢集,則指令碼不會正確執行。
下一步
在本文中,您已了解如何使用 Data Lake Tools for Visual Studio 套件從 Visual Studio 連線到 HDInsight 叢集。 您也了解如何執行 Hive 查詢。