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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

大数据技术原理与应用学习笔记(九)

發布時間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据技术原理与应用学习笔记(九) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大數據技術原理與應用學習筆記(九)

  • 本系列歷史文章
  • 數據倉庫Hive
    • 數據倉庫概念
    • Hive簡介
      • Hive系統架構
        • 用戶接口模塊
      • Hive HA基本原理——(高可用性)
    • Hive的工作原理
      • 由SQL轉換為MapReduce的工作原理
    • Impala——開源大數據分析引擎
      • Impala簡介
      • Impala架構
        • Impalad
        • State Store
        • CLI——執行查詢的命令行工具
      • Impala執行過程
      • Hive與Impala的比較
    • Hive編程實踐

本系列歷史文章

大數據技術原理與應用學習筆記(一)
大數據技術原理與應用學習筆記(二)
大數據技術原理與應用學習筆記(三)
大數據技術原理與應用學習筆記(四)
大數據技術原理與應用學習筆記(五)
大數據技術原理與應用學習筆記(六)
大數據技術原理與應用學習筆記(七)
大數據技術原理與應用學習筆記(八)

數據倉庫Hive

數據倉庫概念

數據倉庫: 數據倉庫是一個面向主題的集成的相對穩定的、反映歷史變化的數據集合,用來支撐管理決策。

數據倉庫的體系結構包括:數據源、數據存儲和管理、分析、挖掘引擎及應用。

傳統數據倉庫面臨的挑戰:

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

Hive簡介

Hive——構建在Hadoop之上的數據倉庫工具。
Hive本身并不存儲處理數據

  • 依賴于HDFS存儲
  • 依賴于MapReduce處理

Hive采用HiveQL語言
Hive兩方面特性:

  • 采用批處理方式處理海量數據
  • Hive提供了一系列對數據進行提取、轉換、加載(ETL)的工具

Hive與其他組件的關系:

  • Pig可替代Hive用于數據倉庫的ETL環節
  • Hive主要用于數據倉庫海量數據的批處理分析
  • HBase支持實時數據訪問,與Hive互補

Hive與傳統數據庫的對比:
如下表:

對比項目Hive傳統數據庫
數據存儲HDFS本地文件系統
數據插入支持批量導入支持單條和批量導入
數據更新不支持支持
索引支持支持
分區支持支持
執行引擎MapReduce、Tez、Spark使用自身引擎
執行延遲
擴展性有限

Hive系統架構

用戶接口模塊

用戶接口模塊主要包括:

  • 用戶接口模塊
    • CLI——命令行
    • HWI——Hive的Web接口
    • JDBC和ODBC——開放數據庫連接接口
    • Thrift Server——基于Thrift架構開發的接口
  • 驅動模塊
    包含編譯器、優化器、執行器。負責把HiveQL語句轉換成MapReduce作業。
  • 元數據存儲模塊
    獨立的關系型數據庫。
  • Hive HA基本原理——(高可用性)

    Hive HA基本原理如圖所示:

    在Hive HA中,在Hadoop集群上構建的數據倉庫是由多個Hive實例進行管理的,這些Hive實例被納入一個資源池中,并由HAProxy提供一個統一的對外接口。客戶端的查詢請求首先訪問HAProxy,由HAProxy對訪問請求進行轉發。HAProxy收到請求后,會輪詢資源池里可用的Hive實例,執行邏輯可用性測試。如果某個Hive實例邏輯可用,就會把客戶端的訪問請求轉發到該Hive實例,如果該Hive實例邏輯不可用,就把它放入黑名單,并繼續從資源池取出下一個Hive實例進行邏輯可用性測試,如果重啟成功,就再次放入資源池中。

    Hive的工作原理

    由SQL轉換為MapReduce的工作原理

    • Input(SQL)轉換為抽象語法樹(AST)
    • AST轉換成查詢塊(Query Block)
    • 將Query Block轉換成邏輯查詢計劃
    • 重寫邏輯查詢計劃,合并優化等,減少MapReduce的任務數量
    • 轉換成MapReduce作業
    • 優化生成最終版的執行計劃。
    • 執行并輸出

    Impala——開源大數據分析引擎

    Impala簡介

    Impala是由Cloudera公司開發的新型查詢系統。Impala的目的不在于替換現有的MapReduce工具,而是提供一個統一的平臺用于實時查詢。

    • 與Hive類似,Impala也可以直接與HDFS和HBase進行交互。
      Hive底層執行使用的是MapReduce,所以主要用于處理長時間運行的批處理任務,例如批量提取、轉化、加載類型的任務。
    • Impala通過與商用并行關系數據庫中類似的分布式查詢引擎,可以直接從HDFS或者HBase中用SQL語句查詢數據,從而大大降低了延遲,主要用于實時查詢。
    • Impala和Hive采用相同的SQL語法、ODBC 驅動程序和用戶接口。

    Impala架構

    Impala主要由3部分構成:Impalad、State Store、CLI

    Impalad

    • Query Planner
    • Query Coordinator
    • Query Exec Engine

    作用:

    • 協調Client提交的查詢的執行
    • 給其他Impalad分配任務
    • 收集其他Impalad執行結果并匯總

    State Store

    創建一個State Stored進程,負責收集分布在集群中各個Impalad進程的資源信息用于查詢調度。

    CLI——執行查詢的命令行工具

    Notes:

    • Impala元數據直接存儲在Hive中
    • 與HIve相同的元數據,相同的SQL,相同的ODBC驅動程序和用戶接口
    • 目的:可以在Hadoop統一部署Hive/Impala使同時滿足批處理和實時處理

    Impala執行過程

    執行過程可簡略記為:

    • 注冊和訂閱
    • 提交查詢
    • 獲取元數據與數據地址
    • 分發查詢任務
    • 匯聚結果
    • 返回結果

    Hive與Impala的比較

    不同點:

    • Hive適合長時間批處理查詢分析,而Impala適合實時交互式SQL查詢;
    • Hive依賴于MapReduce,而Impala把執行計劃表現為完整的執行計劃樹;
    • Hive內存不夠時,利用外存,而Impala在內存不夠時,也不會用外存(適合小規模);

    相同點:

    • Hive與Impala使用相同的存儲數據池,支持存入HDFS、HBase
    • Hive與Impala使用相同的元數據
    • Hive與Impala中對SQL解釋處理較為相似(都是通過詞法分析生成執行計劃)

    在實際應用中,由于Hive和Impala的不同特性,可以先由Hive進行數據轉換,在用Impala進行數據分析。

    Hive編程實踐

    關于Hive的編程實踐可參考廈大數據庫博客:基于Hadoop的數據倉庫Hive 學習指南

    總結

    以上是生活随笔為你收集整理的大数据技术原理与应用学习笔记(九)的全部內容,希望文章能夠幫你解決所遇到的問題。

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