1. 程式人生 > >Hive之 hive架構

Hive之 hive架構

                          Hive架構圖

主要分為以下幾個部分:

  • 使用者介面,包括 命令列CLIClientWeb介面WUIJDBC/ODBC介面等
  • 中介軟體:包括thrift介面和JDBC/ODBC的服務端,用於整合Hive和其他程式。
  • 元資料metadata儲存,通常是儲存在關係資料庫如 mysql, derby 中的系統引數
  • 底層驅動:包括HiveQL直譯器、編譯器、優化器、執行器(引擎)。
  • Hadoop:用 HDFS 進行儲存,利用 MapReduce 進行計算。
  1. 使用者介面主要有三個:CLIClient 和 WUI。其中最常用的是 CLICli 啟動的時候,會同時啟動一個 
    Hive 副本。Client 是 Hive 的客戶端,使用者連線至 Hive Server。在啟動 Client 模式的時候,需要指出 Hive Server 所在節點,並且在該節點啟動 Hive Server。 WUI 是通過瀏覽器訪問 Hive
  2. Hive 將元資料儲存在資料庫中,如 mysqlderbyHive 中的元資料包括表的名字,表的列和分割槽及其屬性,表的屬性(是否為外部表等),表的資料所在目錄等。
  3. 直譯器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯生成執行計劃、優化以及生成最佳執行計劃。生成的查詢計劃儲存在 HDFS 中,並在隨後有 MapReduce 
    呼叫執行。
  4. Hive 的資料儲存在 HDFS 中,大部分的查詢由 MapReduce 完成(包含 的查詢,比如 select * from tbl 不會生成 MapRedcue 任務)。