Hive架構與工作原理


file

組成及作用:

  1. 用戶接口:ClientCLI(hive shell)、JDBC/ODBC(java訪問hive)、WEBUI(瀏覽器訪問hive)

  2. 元數據:Metastore

元數據包括:表名、表所屬的數據庫(默認是default)、表的擁有者、列/分區字段、表的類型(是否是外部表)、表的數據所在目錄等;

默認存儲在自帶的derby數據庫中,推薦使用MySQL存儲Metastore

  1. Hadoop

使用HDFS進行存儲,使用MapReduce進行計算

  1. 驅動器:Driver

(1)解析器(SQL Parser):將SQL字符串轉換成抽象語法樹AST,這一步一般都用第三方工具庫完成,比如antlr;對AST進行語法分析,比如表是否存在、字段是否存在、SQL語義是否有誤。

(2)編譯器(Physical Plan):將AST編譯生成邏輯執行計划。

(3)優化器(Query Optimizer):對邏輯執行計划進行優化。

(4)執行器(Execution):把邏輯執行計划轉換成可以運行的物理計划。對於Hive來說,就是MR/Spark。

工作原理:

  1. 用戶創建數據庫、表信息,存儲在hive的元數據庫中;

  2. 向表中加載數據,元數據記錄hdfs文件路徑與表之間的映射關系;

  3. 執行查詢語句,首先經過解析器、編譯器、優化器、執行器,將指令翻譯成MapReduce,提交到Yarn上執行,最后將執行返回的結果輸出到用戶交互接口。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM