在 HDInsight 中搭配 Apache Hadoop 使用 Apache Ambari Hive 檢視

瞭解如何使用 Apache Ambari Hive 檢視來執行 Hive 查詢。 Hive 檢視可讓您從網頁瀏覽器撰寫、優化和執行 Hive 查詢。

必要條件

HDInsight 上的 Hadoop 叢集。 請參閱開始在 Linux 上使用 HDInsight

執行 HIVE 查詢

  1. Azure 入口網站中,選取您的叢集。 如需指示,請參閱列出和顯示叢集。 叢集會在新的入口網站檢視中開啟。

  2. [叢集儀錶板] 中,選取 [Ambari 檢視]。 當系統提示您進行驗證時,請使用您在建立叢集時所提供的叢集登入 (預設 admin) 帳戶名稱和密碼。 您也可以在瀏覽器中流覽至 https://CLUSTERNAME.azurehdinsight.net/#/main/views ,其中 CLUSTERNAME 是叢集的名稱。

  3. 從檢視清單中,選取 [Hive 檢視]。

    Apache Ambari select Apache Hive view.

    Hive 檢視頁面與下圖類似:

    Image of the query worksheet for the Hive view.

  4. 從 [ 查詢] 索引標籤中,將下列 HiveQL 語句貼到工作表中:

    DROP TABLE log4jLogs;
    CREATE EXTERNAL TABLE log4jLogs(
        t1 string,
        t2 string,
        t3 string,
        t4 string,
        t5 string,
        t6 string,
        t7 string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '
    STORED AS TEXTFILE LOCATION '/example/data/';
    SELECT t4 AS loglevel, COUNT(*) AS count FROM log4jLogs
        WHERE t4 = '[ERROR]'
        GROUP BY t4;
    

    這些陳述式會執行下列動作:

    陳述式 描述
    DROP TABLE 刪除資料表和數據檔,以防數據表已經存在。
    CREATE EXTERNAL TABLE 在Hive中建立新的「外部」數據表。 外部數據表只會將數據表定義儲存在Hive中。 數據會留在原始位置。
    數據列格式 顯示數據的格式化方式。 在此情況下,每個記錄中的欄位會以空格隔開。
    儲存為 TEXTFILE 位置 顯示資料的儲存位置,並將其儲存為文字。
    SELECT 選取資料行 t4 包含值 [ERROR] 的所有數據列計數。

    重要

    將 [ 資料庫 ] 選取專案保留為 預設值。 本檔中的範例會使用 HDInsight 隨附的預設資料庫。

  5. 若要啟動查詢,請選取工作表下方的 [ 執行 ]。 按鈕會變成橙色,文字會變更為 [停止]。

  6. 查詢完成後,[ 結果] 索引標籤會顯示作業的結果。 下列文字是查詢的結果:

    loglevel       count
    [ERROR]        3
    

    您可以使用 [記錄] 索引標籤來檢視作業建立的記錄資訊。

    提示

    [結果] 索引標籤下的 [動作] 下拉式對話框下載或儲存結果

視覺效果說明

若要顯示查詢計劃的視覺效果,請選取 工作表下方的 [視覺效果說明 ] 索引標籤。

查詢 的 Visual Explain 檢視有助於瞭解複雜查詢的流程。

Tez UI

若要顯示查詢的 Tez UI,請選取 工作表下方的 [Tez UI ] 索引標籤。

重要

Tez 不會用來解析所有查詢。 您可以解決許多查詢,而不使用Tez。

檢視作業記錄

[作業] 索引標籤會顯示 Hive 查詢的歷程記錄。

Apache Hive view jobs tab history.

資料庫資料表

您可以使用 [ 資料表] 索引標籤來處理 Hive 資料庫中的數據表。

Image of the Apache Hive tables tab.

已儲存的查詢

從 [ 查詢] 索引標籤,您可以選擇性地儲存查詢。 儲存查詢之後,您可以從 [ 已儲存的查詢] 索引標籤重複使用它

Apache Hive views saved queries tab.

提示

儲存的查詢會儲存在預設叢集記憶體中。 您可以在路徑 /user/<username>/hive/scripts下找到已儲存的查詢。 這些檔案會儲存為純文本 .hql 檔案。

如果您刪除叢集,但保留記憶體,您可以使用公用程式,例如 Azure 儲存體 Explorer 或 Data Lake 儲存體總管 (從 Azure 入口網站) 擷取查詢。

使用者定義的函式

您可以透過使用者定義函式 (UDF) 擴充 Hive。 使用 UDF 來實作在 HiveQL 中不容易建立模型的功能或邏輯。

使用 Hive檢視頂端的 [UDF] 索引標籤,宣告並儲存一組 UDF 。 這些 UDF 可以搭配 查詢編輯器 使用。

Apache Hive view UDFs tab display.

[插入 udfs] 按鈕會出現在 查詢編輯器 底部。 這個項目會顯示Hive檢視中定義的UDF下拉式清單。 選取 UDF 會將 HiveQL 語句新增至您的查詢,以啟用 UDF。

例如,如果您已定義具有下列屬性的 UDF:

  • 資源名稱:myudfs

  • 資源路徑:/myudfs.jar

  • UDF 名稱:myawesomeudf

  • UDF 類別名稱:com.myudfs.Awesome

使用 [ 插入 udfs ] 按鈕會顯示名為 myudfs 的專案,並針對該資源定義的每個 UDF 顯示另一個下拉式清單。 在這種情況下,這是 myawesomeudf。 選取此項目會將下列內容新增至查詢的開頭:

add jar /myudfs.jar;
create temporary function myawesomeudf as 'com.myudfs.Awesome';

接著,您可以在查詢中使用UDF。 例如: SELECT myawesomeudf(name) FROM people;

如需在 HDInsight 上搭配 Hive 使用 UDF 的詳細資訊,請參閱下列文章:

Hive 設定

您可以變更各種Hive設定,例如將Hive的執行引擎從Tez (預設值) 變更為 MapReduce。

下一步

如需 HDInsight 上 Hive 的一般資訊: