Hive 執行流程簡述

2021-09-29 10:12:49 字數 544 閱讀 2893

hive 的架構

hive 的核心驅動 driver

(1) 直譯器:直譯器的作用是將 hivesql 語句轉換為抽象語法樹(ast)

(2) 編譯器:編譯器是將語法樹編譯為邏輯執行計畫

(3) 優化器:優化器是將邏輯執行計畫優化為更優邏輯計畫

(4) 執行器:執行器是將邏輯計畫切成對應引擎的可執行物理計畫

執行流程簡述

首先客戶端或者命令列提交 hql 語句

在 driver 中經過直譯器將 hql 語句解析成抽象語法樹 ast,比對 metastore 中儲存的元資料進行型別判斷與語法分析

經過編譯器將抽象語法樹轉化為乙個邏輯計畫 (儲存在 hdfs 中)

經過優化器對該邏輯計畫進行優化, 更新為最優邏輯計畫

經過執行器將邏輯計畫切成對應引擎 mr 的可執行物理計畫

生成 mapreduce 任務並通過物理優化器優化後,執行在 hadoop 集群上

Hive執行流程分析

先看0.7.1的執行過程 hive select from table02 where id 500000 對於這樣的乙個查詢,hive從clidriver這個類的main函式開始 clidriver.main string args clisessionstate ss new clisessio...

Hive元件及Hive執行流程

元儲存 metastore 儲存 系統目錄以及關於表 列 分割槽等的元資料 的元件。驅動 driver 控制 hiveql 生命週期的元件,當 hiveql 查詢穿過 hive時。該驅動管理著會話控制代碼以及任何會話的統計。查詢編譯器 query compiler 是乙個元件,將hiveql編譯成有...

關於hive的執行流程記錄

1 collect set函式 需求 求使用者消費的 top 100,需要的資料格式是 id 消費金額 nickname 分析 消費 top 比較簡單 group by uuid order by allcnt 可以解決,但是使用者的nickname 暱稱 是有多個的,隨機取乙個就行,但是 hive...