日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive数据仓库

發(fā)布時間:2024/7/19 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hive数据仓库 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.概念

1.1 數(shù)據(jù)倉庫是一個面向主題的、集成的、相對穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理決策

1.2 體系結構

1.3 與傳統(tǒng)數(shù)據(jù)庫的區(qū)別

  • 數(shù)據(jù)相對穩(wěn)定,不會頻繁發(fā)生變化。
  • 保留歷史信息;

1.4 基于傳統(tǒng)數(shù)據(jù)庫的傳統(tǒng)數(shù)據(jù)倉庫面臨的挑戰(zhàn)

  • 無法滿足快速增長的海量數(shù)據(jù)存儲需求;
  • 無法有效處理不同數(shù)據(jù)類型的數(shù)據(jù);
  • 計算和處理數(shù)據(jù)能力不足;

二.Hive 簡介

2.1 基于hadoop的Hive數(shù)據(jù)倉庫,水平擴展性好。

  • 傳統(tǒng)的數(shù)據(jù)倉庫既是數(shù)據(jù)存儲產(chǎn)品也是數(shù)據(jù)處理分析產(chǎn)品;
  • 傳統(tǒng)數(shù)據(jù)倉庫同時支持數(shù)據(jù)的存儲于處理分析;
  • Hive 本身并不支持數(shù)據(jù)存儲和處理,但提供了一種編程語言HiveQL;
  • 架構在底層hadoop核心組件基礎之上,借助hadoop的HDFS和MapReduce完成數(shù)據(jù)的存儲和處理;

2.2 Hive提供類似SQL的查詢語言HiveQL,通過其來執(zhí)行具體的MapReduce任務,支持類似的SQL的接口,移植容易,是一個有效合理直觀組織和使用的數(shù)據(jù)分析工具。

2.3 Hive 兩方面特性

  • 采用批處理方式處理海量數(shù)據(jù)。
    • Hive會把HiveQL語言轉化為MapReduce任務進行運行;
    • 數(shù)據(jù)倉庫存儲的是靜態(tài)數(shù)據(jù),對靜態(tài)數(shù)據(jù)分析適合采用批處理方式,不需要快速響應給出結果,而且數(shù)據(jù)本省不會頻繁變化。
  • Hive提供了一系列對數(shù)據(jù)進行提取、轉換、加載(ETL)的工具。
    • 可以存儲、查詢和分析存儲在hadoop中的大規(guī)模數(shù)據(jù)。
    • 這些工具能夠很好滿足數(shù)據(jù)倉庫各種應用場景。

2.4 Hive 與hadoop組件的關系

  • Hive 依賴于HDFS存儲數(shù)據(jù);
  • Hive 依賴于MapReduce處理數(shù)據(jù);
  • Pig提供一種面向流式處理的語言Pig Latin(類似SQL),通過Pig Latin腳本語言來執(zhí)行數(shù)據(jù)倉庫和數(shù)據(jù)處理等工作。與Hive類似,通過轉化為MapReduce任務來執(zhí)行。
  • Pig適合處理實時的交互信息,不適合海量的數(shù)據(jù)處理。
  • Pig 主要用于數(shù)據(jù)倉庫的ETL環(huán)節(jié);
  • Hive 主要用于數(shù)據(jù)倉庫海量數(shù)據(jù)的批處理分析。
  • HBase 實時交互式查詢的數(shù)據(jù)庫產(chǎn)品,彌補HDFS的缺陷。
  • Hive 時延高,與Hbase互補;

2.5 Hive與傳統(tǒng)數(shù)據(jù)庫

2.6 Hive的應用

  • Mahout:構建商務智能應用;

2.7 Hive 系統(tǒng)架構

  • Hive 對外訪問接口

    • CLI:一種命令行工具
    • HWI:Hive web interface是Hive 的文本接口。
    • JDBC和ODBC:開發(fā)數(shù)據(jù)庫連接接口
    • Thrift Server :基于Thrift架構開發(fā)的接口,允許外界通過這個接口,實現(xiàn)對Hive 倉庫的RPC調用。
  • 驅動模塊Driver

    • 包含編譯器、優(yōu)化器、執(zhí)行器:負責把HiveQL語句轉換成一些列MapReduce作業(yè);
  • 元數(shù)據(jù)存儲模塊Metastore:是一個獨立的關系型數(shù)據(jù)庫;

    • 通過MySQL數(shù)據(jù)庫來存儲Hive元數(shù)據(jù)。

  • 也可以通過上述接口訪問;
    • Qubole:直接作為一種服務提供給用戶,通過亞馬遜AWS平臺可以遠程使用數(shù)據(jù)倉庫,數(shù)據(jù)倉庫由亞馬遜集群管理。

2.8 Hive HA基本原理

  • Hive High Availability:由于Hive 很多時候表現(xiàn)出不穩(wěn)定性,高可用性的解決方案即Hive HA。
  • 外部多個實例訪問HA Proxy,Proxy在轉發(fā)到底層的多個實例上去,執(zhí)行邏輯可用性測試。
  • 每個一定的周期,HA Proxy會重新對列入黑名單的示例進行統(tǒng)一處理。

三.SQL轉換成MapReduce作業(yè)原理

3.1 Hive 不做具體的數(shù)據(jù)處理和存儲,它把SQL語句轉換成MapReduce作業(yè)。

3.2 基本原理

  • 連接:MapReduce實現(xiàn)數(shù)據(jù)庫表的連接

    • 編寫MapReduce處理邏輯
    • Map處理邏輯輸入關系數(shù)據(jù)庫的表;
    • 通過Map對它進行轉換,生產(chǎn)鍵值對;

  • 轉化原理

    • 說明
      • 當啟動MapReduce 程序時,Hive 本身是不會生成MapReduce程序的;
      • 需要通過一個表示"Job 執(zhí)行計劃"的xml文件驅動執(zhí)行內置的、原生的Mapper和MapReduce模塊。
      • Hive 通過和JobTracker通信來初始化MapReduce任務,不必直接部署在JobTracker所在的管理節(jié)點上執(zhí)行
      • 通常在大型集群上,會有專門的網(wǎng)關機來部署Hive 工具。
      • 數(shù)據(jù)文件通常存儲在HDFS 上,HDFS 由名稱節(jié)點管理。

四.Impala 簡介

4.1 Impala 是可以實現(xiàn)實時性交互式查詢分析的工具,彌補了Hive 的缺點。

4.2 Impala

  • 允許通過SQL語句查詢底層數(shù)據(jù),支持PB級別以上的數(shù)據(jù),數(shù)據(jù)可以存儲在HDFS和HBase
  • Impala 運行后依賴Hive 元數(shù)據(jù),不是獨立運行的。
  • Impala 是參照Dremel 系統(tǒng)進行設計的;
  • Impala 不需要轉換成MapReduce任務,而是采用與商業(yè)并行關系數(shù)據(jù)庫類似的分布式查詢引擎,直接與HFDS和HBase進行交互查詢,實時性高;

4.3 系統(tǒng)架構

  • 虛線部分是Impala的組件,實現(xiàn)部分是Hadoop的其他組件,這些組件需要一起部署在同一個集群上。
  • HDFS 和HBase 存儲數(shù)據(jù);
  • Hive 提供元數(shù)據(jù)存儲功能;
  • Impala 三個典型組件
    • Impalad: 負責具體的相關查詢任務;
      • Impalad是駐留在不同節(jié)點上的進程;
      • 包含三個模塊
        • Query Planner: 查詢計劃器
        • Query Coordinator :查詢協(xié)調器
        • Query Exec Engine:查詢執(zhí)行引擎
      • 負責協(xié)調客戶端提交的查詢的執(zhí)行;
      • 與HDFS 的數(shù)據(jù)節(jié)點(HDFS DN)運行在同一節(jié)點上。
      • 給其他Impalad分配任務以及收集其他Impalad的執(zhí)行結果并匯總;
      • Impalad也會執(zhí)行其他Impalad給其分配的任務對本地HDFS和HBase 里的部分數(shù)據(jù)進行操作。
    • State Store:負責運輸局管理和狀態(tài)信息維護;
      • 查詢啟動后,系統(tǒng)會創(chuàng)建StateStore的進程;
      • 負責收集分布式在集群中各個Impala 進程的資源信息用于查詢調度。
    • CLI:用戶訪問接口;
      • 提供查詢使用的命令行工具;
      • 同時提供Hue 、JDBC及 ODBC 的使用接口;

4.4 Impala 查詢執(zhí)行過程




4.5 Impala 與Hive 比較分析

  • 不同點
    • Hive 適合于長時間的批處理查詢分析而Impala 適合于實時交互式SQL 查詢。
    • Impala 在遇到內存放不下數(shù)據(jù)時,不會利用外存所以Impala 目前處理查詢時會受到一定的限制。
  • 相同點
    • Hive 與Impala 使用相同的存儲數(shù)據(jù)池都支持數(shù)據(jù)存儲與HDFS和HBase。
    • Hive 和Impala 中對SQL 的解釋處理比較相似都是通過詞法分析生成執(zhí)行計劃。

Impala 的目的不在于替代現(xiàn)有的MapReduce工具,使HIve 和 Impala 的配合使用效果最佳,可以先使用HIve 進行數(shù)據(jù)轉換處理之后再使用Impala 在 Hive 處理后的數(shù)據(jù)集上進行快速的數(shù)據(jù)分析。

五.Hive 基本操作

5.1 基本數(shù)據(jù)類型

5.2 相關操作

  • 創(chuàng)建數(shù)據(jù)庫
  • 創(chuàng)建表,可以設置存儲路徑。
  • 創(chuàng)建視圖
  • 查看數(shù)據(jù)庫
  • 查看表,視圖
  • 插入數(shù)據(jù)

  • 插入或導出數(shù)據(jù)

六. Hive 編程

6.1 詞頻統(tǒng)計


6.2 與MapReduce 的不同點


總結

以上是生活随笔為你收集整理的Hive数据仓库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。