天天看點

大資料hive(一):hive的基本概念Hive基本概念一、Hive介紹二、Hive架構

文章目錄

  • Hive基本概念
  • 一、Hive介紹
    • 1、什麼是Hive
    • 2、Hive的優缺點
    • ​​​​​​​3、Hive的特點
  • 二、Hive架構
    • 1、架構圖
    • ​​​​​​​2、基本組成
    • ​​​​​​​3、Hive與傳統資料庫對比

Hive基本概念

一、Hive介紹

1、什麼是Hive

Hive是一個建構在Hadoop上的資料倉庫架構。最初,Hive是由Facebook開發,後來移交由Apache軟體基金會開發,并作為一個Apache開源項目。

Hive是基于Hadoop的一個資料倉庫工具,可以将結構化的資料檔案映射為一張資料庫表,并提供類SQL查詢功能。

從本質上講,Hive是将HQL轉換成mapreduce程式的工具。

  1. Hive處理的資料存儲在hdfs
  2. HIve分析資料底層的實作是MapReduce
  3. 執行程式運作在yarn上
大資料hive(一):hive的基本概念Hive基本概念一、Hive介紹二、Hive架構

2、Hive的優缺點

優點:

1)操作接口采用類sql文法,提供快速開發的能力

2)避免了去寫mapreduce,減少開發人員的學習成本

3)hive常用于資料分析,對實時性要求不高的場合

4)hive優勢在于處理大資料,對于處理小資料沒有優勢,因為hive的執行延遲比較高

5)hive支援使用者自定義函數,使用者可以根據自己的需求來實作自己的函數

缺點:

1.hive的HQL表達能力有限

1)疊代算法無法表達

2)資料挖掘方面不擅長,由于MapReduce資料處理流程的限制,效率更高的算法卻無法實作

2.hive的效率比較低

1)hive自動生成的MapResuce作業,通常情況下不夠智能化

2)hive調優比較困難,粒度較粗

​​​​​​​3、Hive的特點

  1. Hive最大的特點是通過類SQL來分析大資料,而避免了寫MapReduce程式來分析資料,這樣使得分析資料更容易。
  2. 資料是存儲在HDFS上的,Hive本身并不提供資料的存儲功能,它可以使已經存儲的資料結構化。
  3. Hive是将資料映射成資料庫和一張張的表,庫和表的中繼資料資訊一般存在關系型資料庫上(比如MySQL)。
  4. 資料存儲方面:它能夠存儲很大的資料集,可以直接通路存儲在Apache HDFS或其他資料存儲系統(如Apache HBase)中的檔案。
  5. 資料處理方面:因為Hive語句最終會生成MapReduce任務去計算,是以不适用于實時計算的場景,它适用于離線分析。
  6. Hive除了支援MapReduce計算引擎,還支援Spark和Tez這兩種分布式計算引擎;
  7. 資料的存儲格式有多種,比如資料源是二進制格式,普通文本格式等等;

二、Hive架構

1、架構圖

大資料hive(一):hive的基本概念Hive基本概念一、Hive介紹二、Hive架構

​​​​​​​2、基本組成

用戶端:Client CLI(hive shell 指令行),JDBC/ODBC(java通路hive),WEBUI(浏覽器通路hive)

中繼資料:Metastore:本質上隻是用來存儲hive中有哪些資料庫,哪些表,表的字段,,表所屬資料庫(預設是default) ,分區,表的資料所在目錄等,中繼資料預設存儲在自帶的derby資料庫中,推薦使用MySQL存儲Metastore。

驅動器:Driver

(1)解析器(SQL Parser):将SQL字元轉換成抽象文法樹AST,這一步一般使用都是第三方工具庫完成,比如antlr,對AST進行文法分析,比如表是否存在,字段是否存在,SQL語句是否有誤

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

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

(4)執行器(Execution):把邏輯執行計劃轉換成可以運作的實體計劃,對于Hive來說,就是MR/Spark

存儲和執行:Hive使用HDFS進行存儲,使用MapReduce進行計算

​​​​​​​3、Hive與傳統資料庫對比

大資料hive(一):hive的基本概念Hive基本概念一、Hive介紹二、Hive架構

總結:hive具有sql資料庫的外表,但應用場景完全不同,hive隻适合用來做批量資料統計分析

轉載https://blog.csdn.net/xiaoweite1/article/details/117757325

繼續閱讀