更新時間:2022年11月08日10時32分 來源:傳智教育 瀏覽次數:
Hive是基于Hadoop的一個數據倉庫工具,主要用來對數據進行抽取、轉換、加載操作。HiveQL可以將結構化的數據文件映射為一張數據表,允許熟悉SQL的用戶查詢數據,也允許熟悉MapReduce的開發者開發自定義的mapper和reducer來處理內建的mapper和 reducer無法完成的復雜的分析工作,相對于Java代碼編寫的MapReduce來說,Hive的優勢更加明顯。Hive利用Hadoop的HDFS存儲數據,利用Hadoop的MapReduce執行查詢。
Hive和Hadoop協作執行任務的工作原理
(1) 用戶通過用戶接口向Driver提交executeQuery。
(2) Driver向Compiler發送獲取計劃的請求。
(3) Compiler根據用戶提交的executeQuery去MetaStore獲取需要的元數據信息。
(4) MetaStore向Compiler發送元數據信息。
(5) Compiler得到元數據信息,并向Driver發送計劃。
(6) Driver 向EXECUTION ENGINE提交executePlan。
(7) 用戶接口向Driver發起獲取結果集(fetchResults)的請求。
(8)Driver向EXECUTION ENGINE發起獲取結果集的請求。
(9)EXECUTION ENGINE向Driver發送結果集,Driver獲取到結果集后返回用戶接口。