天天看點

Hive之 hive架構

Hive之 hive架構

                          hive架構圖

主要分為以下幾個部分:

使用者接口,包括 指令行cli,client,web界面wui,jdbc/odbc接口等

中間件:包括thrift接口和jdbc/odbc的服務端,用于整合hive和其他程式。

中繼資料metadata存儲,通常是存儲在關系資料庫如 mysql, derby 中的系統參數

底層驅動:包括hiveql解釋器、編譯器、優化器、執行器(引擎)。

hadoop:用 hdfs 進行存儲,利用 mapreduce 進行計算。

使用者接口主要有三個:cli,client 和 wui。其中最常用的是 cli,cli 啟動的時候,會同時啟動一個 hive 副本。client 是 hive 的用戶端,使用者連接配接至 hive server。在啟動 client 模式的時候,需要指出 hive server 所在節點,并且在該節點啟動 hive server。 wui 是通過浏覽器通路 hive。

hive 将中繼資料存儲在資料庫中,如 mysql、derby。hive 中的中繼資料包括表的名字,表的列和分區及其屬性,表的屬性(是否為外部表等),表的資料所在目錄等。

解釋器、編譯器、優化器完成 hql 查詢語句從詞法分析、文法分析、編譯生成執行計劃、優化以及生成最佳執行計劃。生成的查詢計劃存儲在 hdfs 中,并在随後有 mapreduce 調用執行。

hive 的資料存儲在 hdfs 中,大部分的查詢由 mapreduce 完成(包含 * 的查詢,比如 select * from tbl 不會生成 mapredcue 任務)。

繼續閱讀