流程大致步驟為:
1. 用戶提交查詢等任務給Driver。
2. 編譯器獲得該用戶的任務Plan。
3. 編譯器Compiler根據用戶任務去MetaStore中獲取需要的Hive的元數據信息。
4. 編譯器Compiler得到元數據信息,對任務進行編譯,先將HiveQL轉換為抽象語法樹,然後將抽象語法樹轉換成查詢塊,將查詢塊轉化為邏輯的查詢計劃,重寫邏輯查詢計劃,將邏輯計劃轉化為物理的計劃(MapReduce), 最後選擇最佳的策略。
5. 將最終的計劃提交給Driver。
6. Driver將計劃Plan轉交給ExecutionEngine去執行,獲取元數據信息,提交給JobTracker或者SourceManager執行該任務,任務會直接讀取HDFS中文件進行相應的操作。
7. 獲取執行的結果。
8. 取得並返回執行結果。