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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hive数据仓库

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

一.概念

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

1.2 體系結(jié)構(gòu)

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ù)倉庫同時支持?jǐn)?shù)據(jù)的存儲于處理分析;
  • Hive 本身并不支持?jǐn)?shù)據(jù)存儲和處理,但提供了一種編程語言HiveQL;
  • 架構(gòu)在底層hadoop核心組件基礎(chǔ)之上,借助hadoop的HDFS和MapReduce完成數(shù)據(jù)的存儲和處理;

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

2.3 Hive 兩方面特性

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

2.4 Hive 與hadoop組件的關(guān)系

  • Hive 依賴于HDFS存儲數(shù)據(jù);
  • Hive 依賴于MapReduce處理數(shù)據(jù);
  • Pig提供一種面向流式處理的語言Pig Latin(類似SQL),通過Pig Latin腳本語言來執(zhí)行數(shù)據(jù)倉庫和數(shù)據(jù)處理等工作。與Hive類似,通過轉(zhuǎn)化為MapReduce任務(wù)來執(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的應(yīng)用

  • Mahout:構(gòu)建商務(wù)智能應(yīng)用;

2.7 Hive 系統(tǒng)架構(gòu)

  • Hive 對外訪問接口

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

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

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

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

2.8 Hive HA基本原理

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

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

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

3.2 基本原理

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

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

  • 轉(zhuǎn)化原理

    • 說明
      • 當(dāng)啟動MapReduce 程序時,Hive 本身是不會生成MapReduce程序的;
      • 需要通過一個表示"Job 執(zhí)行計劃"的xml文件驅(qū)動執(zhí)行內(nèi)置的、原生的Mapper和MapReduce模塊。
      • Hive 通過和JobTracker通信來初始化MapReduce任務(wù),不必直接部署在JobTracker所在的管理節(jié)點上執(zhí)行
      • 通常在大型集群上,會有專門的網(wǎng)關(guān)機來部署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)進行設(shè)計的;
  • Impala 不需要轉(zhuǎn)換成MapReduce任務(wù),而是采用與商業(yè)并行關(guān)系數(shù)據(jù)庫類似的分布式查詢引擎,直接與HFDS和HBase進行交互查詢,實時性高;

4.3 系統(tǒng)架構(gòu)

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

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




4.5 Impala 與Hive 比較分析

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

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

五.Hive 基本操作

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

5.2 相關(guān)操作

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

  • 插入或?qū)С鰯?shù)據(jù)

六. Hive 編程

6.1 詞頻統(tǒng)計


6.2 與MapReduce 的不同點


總結(jié)

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

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