Hive執行SQL步驟
執行查詢
從Hive的CLI或WebUI發查詢命令給驅動程序(任何JDBC、ODBC數據庫驅動)執行
獲得計划
驅動程序請求查詢編輯器解析查詢、檢查語法、生成查詢計划或者查詢所需要的資源
獲取元數據
編譯器向元數據存儲數據庫發送元數據請求
發送元數據
作為響應,元數據存儲數據庫向編譯器發送元數據
發送計划
編譯器檢查需要的資源,並把查詢計划發送給驅動程序。至此,查詢解析完成
執行計划
驅動程序向執行引擎發送執行計划
執行作業
執行計划的處理是一個MR作業。執行引擎向NameNode上的JobTracker進程發送作業,JobTracker把作業分配給DataNode上的TaskTracker進程。此時,查詢執行MR作業
操作元數據
執行作業的同時,執行引擎可能會執行元數據操作,如DDL語句等
取回結果
執行引擎從DataNode接收結果
發送結果
執行引擎向驅動程序發送合成的結果值
發送結果
驅動程序向Hive接口(CLI或WebUI)發送結果