組成及做用:java
元數據包括:表名、表所屬的數據庫(默認是default)、表的擁有者、列/分區字段、表的類型(是不是外部表)、表的數據所在目錄等;shell
默認存儲在自帶的derby數據庫中,推薦使用MySQL存儲Metastore數據庫
使用HDFS進行存儲,使用MapReduce進行計算瀏覽器
(1)解析器(SQL Parser):將SQL字符串轉換成抽象語法樹AST,這一步通常都用第三方工具庫完成,好比antlr;對AST進行語法分析,好比表是否存在、字段是否存在、SQL語義是否有誤。工具
(2)編譯器(Physical Plan):將AST編譯生成邏輯執行計劃。oop
(3)優化器(Query Optimizer):對邏輯執行計劃進行優化。優化
(4)執行器(Execution):把邏輯執行計劃轉換成能夠運行的物理計劃。對於Hive來講,就是MR/Spark。spa
工做原理:翻譯