Hive的架構和原理

2021-09-11 10:39:13 字數 915 閱讀 4780

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張表,並提供類sql(hql)查詢功能。hive是將hql轉化為mapreduce程式,hive處理的資料儲存在hdfs上,執行程式執行在yarn上。由於執行的是mapreduce程式,延遲比較高(還有乙個重要的原因是,沒有索引而需要掃瞄整個表),因此hive常用於離線的資料分析。

client:使用者介面

cli(command-line inte***ce)、jdbc/odbc(jdbc訪問hive)、webui(瀏覽器訪問hive)

metastore:元資料

元資料報括表名、表所屬的資料庫、表的擁有者、列/分割槽字段、表的型別、表的資料所在目錄等;預設儲存在自帶的derby資料庫中,由於開啟多個hive時會報異常,推薦使用mysql儲存metastore。

hadoop

使用hdfs進行儲存資料,使用mapreduce進行計算。

driver:驅動器

解析器(sql parser):將sql字串轉換成抽象語法樹ast,對ast進行語法分析,比如表是否存在,字段是否存在,sql語義是否有誤。

編譯器(physical plan):將ast編譯生成邏輯執行計畫。

優化器(query optimizer):對邏輯執行計畫進行優化。

執行器(execution):把邏輯執行計畫轉化成可以執行的物理計畫,即mapreduce。

hive通過給使用者提供的一系列互動介面,接收到使用者的指令(sql),使用自己的驅動器(driver),將sql語句解析成對應的mapreduce程式,並生成相應的jar包,結合元資料(metastore)提供的對應檔案的路徑,提交到hadoop中執行,最後將執行結果輸出到使用者互動介面。

Hive架構原理

1 使用者介面 client cli command line inte ce jdbc odbc jdbc訪問hive webui 瀏覽器訪問hive 2 元資料 metastore 元資料報括 表名 表所屬的資料庫 預設是default 表的擁有者 列 分割槽字段 表的型別 是否是外部表 表的資...

hive架構原理

1 使用者介面 client cli command line inte ce jdbc odbc jdbc訪問hive webui 瀏覽器訪問hive 2 元資料 metastore 元資料報括 表名 表所屬的資料庫 預設是default 表的擁有者 列 分割槽字段 表的型別 是否是外部表 表的資...

Hive的架構原理 Hive的安裝步驟

元資料預設資料庫是 derby 開發使用mysql hive如何將sql語句翻譯成mapreduce的?1.使用sql解析器解析sql語句 2.使用編譯器進行編譯邏輯 3.使用優化器進行優化 4.使用執行器在hadoop上執行mapreduce hive是基於hadoop之上的框架。1.安裝hive...