Hive學習第一章:基本概念

目錄

 

1.1 什麼是hive?

1.2 hive的優缺點 

1.3 hive的架構原理 

1.4 hive和數據庫的比較 


正文

1.1 什麼是hive?

hive由Facebook開源用於解決海量結構化日誌的數據統計,是基於hadoop的一個數據倉庫工具,可以將結構化數據文件映射成一張表,並提供類SQL查詢功能

本質:將HQL轉化成MapReduce程序

  • hive的計算存儲在hdfs上
  • hive底層分析數據的方式是mapreduce
  • hive執行程序運行在yarn上

1.2 hive的優缺點 

1.2.1 優點

  1. 操作接口採用類SQL語句,開發速度快,簡單,容易上手
  2. 避免了寫MapReduce,減少了學習成本
  3. hive有執行延遲情況,不適合於實時性的數據,適合用於數據分析
  4. hive適合處理大數據,不適合處理小數據,因爲它有執行延遲比較高
  5. hive支持用戶自定義函數,靈活性高

1.2.2 缺點

  1. HQL表達能力有限,對於迭代式的算法無法表達,不擅長數據挖掘
  2. 自動生成MapReduce作業,不夠智能化,粒度較粗,不利於優化

1.3 hive的架構原理 

元數據包括:表名、表所屬的數據庫、表的擁有者、列/分區字段、表的類型(是否是外部表)、表的所在目錄等。元數據默認存儲在derby數據庫中,推薦使用MySQL的 MetaStore

1.4 hive和數據庫的比較 

1.4.1 查詢語句

由於SQL被廣泛的應用於數據倉庫,因此針對hive專門設計了類SQL的HQL查詢語句,方便進行開發

1.4.2 數據存儲位置

hive是建立在hadoop的基礎上,hive的數據儲存都是在hdfs中的,而數據庫可以將數據保存在塊設備或者自己的本地文件系統中

1.4.3 數據更新

hive是針對數據倉庫應用設計的,數據倉庫的內容是讀多寫少,因此hive不建議對已有的數據進行改寫,因爲數據都是在加載的時候確定好的

1.4.4 索引

hive沒有索引,訪問滿足條件的特定值的時候,需要暴力掃描整個數據,因此訪問延遲較高

1.4.5 執行

hive大多數的查詢是通過hadoop提供的MapReduce來實現的,而數據庫通常有自己的執行引擎

1.4.6 執行延遲

一方面hive訪問數據的時候是掃描整個數據,另一方面他的執行是通過MapReduce框架執行的,該框架本身具有延遲性

1.4.7 可擴展性

hive是基於hadoop的,所以其擴展性和hadoop一致的

1.4.8 數據規模

hive建立在集羣上,並且可以利用MapReduce進行並行計算

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