Hive學習系列 二 Hive的查詢流程詳解

2021-09-02 16:50:42 字數 899 閱讀 6202

此文為翻譯的文件,英文連線為

hive 查詢流程圖如下

圖中可以看出查詢主要元件包含

執行流程詳細解析

(1)step 1:ui(user inte***ce

)呼叫的

driver

的execute介面

(2)step 2:

driver為查詢建立會話控制代碼,並將查詢傳送給

compiler以生成執行計畫,

(3)step 3 and 4:

compiler從

metastore獲取相關的元資料定義

(4)step 5:

元資料用於對查詢樹中的表示式進行型別檢查,以及基於查詢謂詞調整分割槽,

生成計畫

execution engine

將各個階段提交個適當的元件執行。

(6)step 

7, 8 and 9:在每個任務(

)中,表或者中間輸出相關的反序列化器從hdfs讀取行,並通過相關的操作樹進行傳遞。一旦這些輸出產生,將通過序列化器生成零時的的hdfs檔案(這個只發生在只有map沒有reduce的情況),生成的hdfs零時檔案用於執行計畫後續的map/reduce階段。對於dml操作,零時檔案最終移動到表的位置。該方案確保不出現髒資料讀取(

檔案重新命名是hdfs中的原子操作

),對於查詢,臨時檔案的內容由

execution engine

直接從hdfs讀取,作為從driver fetch api的一部分

這個我現在基於英文做了翻譯,後面還的好好看看

hive學習系列(一)什麼是hive及hive的架構

Hive系列 二 Hive基本環境安裝

由於之前的hadoop集群是用docker搭建的,所以後面整個大資料環境,本人都會採用docker構建,hive環境安裝需在之前的hadoop基礎上構建,參考文章如下 hadoop系列 一 docker部署hadoop集群 啟動docker,執行之前儲存的hadoop映象,進入容器內部,再按下面操作...

hive入門學習 hive的調優 二)

hive入門學習 hive的調優 二 hive會把查詢轉化成為乙個或者多個階段,這樣的階段可以是mapreduce階段,抽樣階段,合併階段,limit階段等等。預設情況下hive一次只會執行乙個階段,不過某些特定的階段可能會包含眾多的階段,而這些階段並非互相依賴,可以並行執行,這樣就可以大幅度的縮短...

hive 學習系列六 hive 去重辦法的思考

create table if not exists tubutest name1 string,name2 string row format delimited fields terminated by stored as textfile select from ods.wdtest 1 11...