hadoop學習筆記--9.hive初識

一、hive基本介紹


  Hive 是建立在 Hadoop 基礎上的數據倉庫基礎構架,可以將結構化的數據文件映射爲一張數據庫表。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。並提供簡單的sql查詢功能,可以將sql語句轉換爲MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
hive由facebook開源,最初用於解決海量結構化的日誌數據統計問題;數據計算使用MR,數據存儲使用HDFS(可以與hbase集合),運行在yarn之上。可認爲是一個HQL->MR的語言翻譯器。

數據倉庫
  數據倉庫,英文名稱爲Data Warehouse,可簡寫爲DW或DWH。數據倉庫,是爲企業所有級別的決策制定過程,提供所有類型數據支持的戰略集合。它是單個數據存儲,出於分析性報告和決策支持目的而創建。 爲需要業務智能的企業,提供指導業務流程改進、監視時間、成本、質量以及控制,簡而言之,數據倉庫是用來做查詢分析的數據庫,基本不用來做插入,修改,刪除。

二、hive應用場景

  1. 日誌分析

      統計網站一個時間段內的pv、 uv
       多維度數據分析、
       大部分互聯網公司使用Hive進行日誌分析,包括百度、淘寶等

  2. 海量結構化數據離線分析

  3. 低成本進行數據分析(不直接編寫MR)

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

  5. Hive優勢在於處理大數據,對於處理小數據沒有優勢。

三、hive特點


不足

  1.  Hive的HQL表達的能力有限

     迭代式算法無法表達
     有些複雜運算用HQL不易表達

  2.  Hive效率不高

     Hive自動生成MapReduce作業,通常不夠智能
     HQL調優困難,粒度較粗
     可控性差

優勢
   操作接口採用類SQL語法,提供快速開發的能力(簡單、容易上手
   避免了去寫MapReduce,減少開發人員的學習成本
   統一的元數據管理,可與impala/spark等共享元數據
   易擴展(HDFS+MapReduce:可以擴展集羣規模;支持自定義函數)

四、hive系統架構


這裏寫圖片描述

客戶端組件
  1. 命令行接口(CLI)(hive shell)(最常用)
  2. Web界面
  3. hive應用(JDBC/ODBC/Thrift)(java訪問hive)

驅動程序
  該組件包括Complier、Optimizer和Executor,它的作用是將我們寫的HiveQL(類SQL)語句進行解析、編譯優化,生成執行計劃,然後調用底層的mapreduce計算框架。

元數據存儲
  元數據服務組件,這個組件存儲hive的元數據,hive的元數據存儲在關係數據庫裏,hive支持的關係數據庫有derby、mysql。元數據對於hive十分重要,因此hive支持把metastore服務獨立出來,安裝到遠程的服務器集羣裏,從而解耦hive服務和metastore服務,保證hive運行的健壯性。默認存儲在自帶的數據庫derby中,線上使用時一般換爲MySQL。元數據包括:表名、表所屬的數據庫(默認是default)、表的擁有者、列/分區字段、表的類型(是否是外部表)、表的數據所在目錄等;
  
Hadoop服務器

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