1.使用者介面:client
cli(command-line inte***ce)、jdbc/odbc(jdbc訪問hive)、webui(瀏覽器訪問hive)
2.元資料:metastore
元資料報括:表名、表所屬的資料庫(預設是default)、表的擁有者、列/分割槽字段、表的型別(是否是外部表)、表的資料所在目錄等;
預設儲存在自帶的
derby
資料庫中,推薦使用
mysql
儲存metastore
3.hadoop
使用hdfs進行儲存,使用mapreduce進行計算。
4.驅動器:driver
(1)解析器(sql parser):將sql字串轉換成抽象語法樹ast,這一步一般都用第三方工具庫完成,比如antlr;對ast進行語法分析,比如表是否存在、字段是否存在、sql語義是否有誤。
(2)編譯器(physical plan):將ast編譯生成邏輯執行計畫。
(3)優化器(query optimizer):對邏輯執行計畫進行優化。
(4)執行器(execution):把邏輯執行計畫轉換成可以執行的物理計畫。對於hive來說,就是mr/spark。
通過給使用者提供的一系列互動介面,接收到使用者的指令
(sql)
,使用自己的
driver
,結合元資料
(metastore)
,將這些指令翻譯成
mapreduce
,提交到
hadoop
中執行,最後,將執行返回的結果輸出到使用者互動介面。
hive架構原理
1 使用者介面 client cli command line inte ce jdbc odbc jdbc訪問hive webui 瀏覽器訪問hive 2 元資料 metastore 元資料報括 表名 表所屬的資料庫 預設是default 表的擁有者 列 分割槽字段 表的型別 是否是外部表 表的資...
Hive的架構和原理
hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張表,並提供類sql hql 查詢功能。hive是將hql轉化為mapreduce程式,hive處理的資料儲存在hdfs上,執行程式執行在yarn上。由於執行的是mapreduce程式,延遲比較高 還有乙個重要的原因是,沒有...
Hive的架構原理 Hive的安裝步驟
元資料預設資料庫是 derby 開發使用mysql hive如何將sql語句翻譯成mapreduce的?1.使用sql解析器解析sql語句 2.使用編譯器進行編譯邏輯 3.使用優化器進行優化 4.使用執行器在hadoop上執行mapreduce hive是基於hadoop之上的框架。1.安裝hive...