日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive-原理解析

發布時間:2025/3/8 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive-原理解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Hive 架構

下面是Hive的架構圖。

Hive的體系結構可以分為以下幾部分

1、用戶接口:CLI(hive shell);JDBC(java訪問Hive);WEBUI(瀏覽器訪問Hive)
2、元數據:MetaStore
元數據包括:表名、表所屬的數據庫(默認是default)、表的擁有者、列/分區字段,標的類型(表是否為外部表)、表的數據所在目錄。這是數據默認存儲在Hive自帶的derby數據庫中,推薦使用MySQL數據庫存儲MetaStore。
3、Hadoop集群:
使用HDFS進行存儲數據,使用MapReduce進行計算。
4、Driver:驅動器:

  • 解析器(SQL Parser):將SQL字符串換成抽象語法樹AST,對AST進行語法分析,像是表是否存在、字段是否存在、SQL語義是否有誤。
  • 編譯器(Physical Plan):將AST編譯成邏輯執行計劃。
  • 優化器(Query Optimizer):將邏輯計劃進行優化。
  • 執行器(Execution):把執行計劃轉換成可以運行的物理計劃。對于Hive來說默認就是Mapreduce任務。

二、Hive 工作原理

? Hive 工作原理如下圖所示。

1、ExecuteQuery:操作Hive接口,如命令行或Web UI發送查詢驅動程序(任何數據庫驅動程序,如JDBC,ODBC等)來執行。

2、Get Plan:在驅動程序幫助下查詢編譯器,分析查詢檢查語法和查詢計劃或查詢的要求。

3、Get Metadata:編譯器發送元數據請求到Metastore(任何數據庫)。

4、Send Metadata:Metastore發送元數據,以編譯器的響應。

5、Send Plan:編譯器檢查要求,并重新發送計劃給驅動程序。到此為止,查詢解析和編譯完成。

6、Execute Plan:驅動程序發送的執行計劃到執行引擎。

  • Execute Job:在內部,執行作業的過程是一個MapReduce工作。執行引擎發送作業給JobTracker,在名稱節點并把它分配作業到TaskTracker,這是在數據節點。在這里,查詢執行MapReduce工作。

  • Metadata Ops:與此同時,在執行時,執行引擎可以通過Metastore執行元數據操作。

7、Fetch Result:執行引擎接收來自數據節點的結果。

8、Send Results:執行引擎發送這些結果值給驅動程序。

總結

以上是生活随笔為你收集整理的Hive-原理解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。