當前位置:編程學習大全網 - 源碼下載 - hive1和hive2的區別

hive1和hive2的區別

1.用戶接口:Client

CLI(hive shell)、JDBC/ODBC(java訪問hive)、WEBUI(瀏覽器訪問hive)

2.元數據:Metastore

元數據包括:表名、表所屬的數據庫(默認是default)、表的擁有者、列/分區字段、表的類型(是否是外部表)、表的數據所在目錄等;

默認存儲在自帶的derby數據庫中,推薦使用MySQL存儲Metastore

3.Hadoop

使用HDFS進行存儲,使用MapReduce進行計算。

4.驅動器:Driver

(1)解析器(SQL Parser):將SQL字符串轉換成抽象語法樹AST,這壹步壹般都用第三方工具庫完成,比如antlr;對AST進行語法分析,比如表是否存在、字段是否存在、SQL語義是否有誤。

(2)編譯器(Physical Plan):將AST編譯生成邏輯執行計劃。

(3)優化器(Query Optimizer):對邏輯執行計劃進行優化。

(4)執行器(Execution):把邏輯執行計劃轉換成可以運行的物理計劃。對於Hive來說,就是MR/Spark。

Hive通過給用戶提供的壹系列交互接口,接收到用戶的指令(SQL),使用自己的Driver,結合元數據(MetaStore),將這些指令翻譯成MapReduce,提交到Hadoop中執行,最後,將執行返回的結果輸出到用戶交互接口。

二:Hive的作用和優勢:

基於Hadoop的數據倉庫解決方案

Hive是基於Hadoop的壹個數據倉庫工具,將結構化的數據文件映射為數據庫表。

提供類sql的查詢語言HQL(Hive Query Language)

數據不放在hive上,放在HDFS上

由Facebook開源用於解決海量結構化日誌的數據統計。

執行程序運行在Yarn上

優勢:

提供了簡單的優化模型

HQL類sql語法,簡化MR開發

支持在HDFS和HBase上臨時查詢數據

支持用戶自定義函數,格式

成熟JDBC和ODBC驅動程序,用於ETL和BI

穩定可靠的批處理

支持在不同計算框架運行

缺點:

Hive的執行延遲比較高,因此Hive常用於數據分析,對實時性要求不高的場合

叠代式算法無法表達

數據挖掘方面不擅長

Hive自動生成的MapReduce作業,通常情況下不夠智能化

Hive調優比較困難,粒度較粗

  • 上一篇:“星盒”是哪位神仙?
  • 下一篇:FFmpeg 代碼實現流媒體推流(RTSP)
  • copyright 2024編程學習大全網