07-Hive基礎

1.Hive簡介

1.1Hive的特點

  • Hive:由 Facebook 開源用於解決海量結構化日誌的數據統計。
  • Hive 是基於 Hadoop 的一個數據倉庫工具,可以將結構化的數據文件映射爲一張表,並提供類 SQL 查詢功能。
    本質是:將 HQL 轉化成 MapReduce 程序
  • Hive 處理的數據存儲在 HDFS
  • Hive 分析數據底層的默認實現是 MapReduce
  • 執行程序運行在 Yarn 上
    在這裏插入圖片描述

1.2HIve的優缺點

  • 優點:
    類似SQL語句,減少了學習成本
    適合處理大數據,常用於實時性不高的數據分析
    支持用戶自定義函數,用戶根據需求定義函數
  • 缺點:
    迭代式算法無法表達
    數據挖掘方面不擅長
    調優困難,粒度較粗

2.Hive內部原理

2.1Hive的架構

在這裏插入圖片描述

2.1.1Client(用戶接口)

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

2.1.2Metastore(元數據)

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

2.1.3Driver(驅動器)

  • 解析器(SQL Parser):將 SQL 字符串轉換成抽象語法樹 AST,這一步一般都用第三方工具庫完成,比如 antlr;對 AST 進行語法分析,比如表是否存在、字段是否存在、SQL 語義是否有誤。
  • 編譯器(Physical Plan):將 AST 編譯生成邏輯執行計劃。
  • 優化器(Query Optimizer):對邏輯執行計劃進行優化。
  • 執行器(Execution):把邏輯執行計劃轉換成可以運行的物理計劃。對於 Hive 來
    說,就是 MR/Spark。

2.2Hive運行機制

3.HiveAPI操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章