Hive的架構和工作流程


架構

  1.hive是數據倉庫,在hadoop基礎上處理結構化數據;它駐留在hadoop之上,用戶對數據的統計,查詢和簡單的分析操作。

  2.hive不是

    a.關系型數據庫

    b.OLTP

    c.實時查詢和行級更新操作

  3.hive特點

    a.表模型存儲在database(關系型)中,處理的數據存儲在HDFS上;

    b.設計模式遵循OLAP

    c.它提供了一套類SQL的語言(HiveQL or HQL),用於執行查詢

    d.它是簡單的,快速的,可擴展的和易伸縮的

  4.hive架構

    a.(用戶接口)User Interface:hive提供Web UI 、command line和HD Insight;

    b.(元數據):hive選擇獨立的的數據庫(MySQL)用於存儲metadata,元數據包含:表的信息、databases信息、表的列信息、字段類型信息和HDFS mapping(映射);

     c.(HQL處理引擎)HiveQL Process Engine:HiveQL類似於SQL,用於查詢轉移的模式信息。它是對MapReduce程序的傳統方法的替換之一

     d.(執行引擎)Execution Engine:HiveQL流程引擎和MapReduce的連接部分是Hive執行引擎。執行引擎處理查詢並生成與MapReduce結果相同的結果

     e.(HDFS or HBASE):Hadoop分布式文件系統或HBASE是將數據存儲到文件系統中的數據存儲技術。

 

工作流程 

  1.(執行查詢操作)Execute Query

    命令行或Web UI之類的Hive接口將查詢發送給Driver(任何數據庫驅動程序,如JDBC,ODBC等)以執行。

  2.(獲取計划任務)Get plan

    Driver借助查詢編譯器解析查詢,檢查語法和查詢計划或查詢需求。

  3.(獲取元數據信息)Get Metadata

    編譯器將元數據請求發送到Metastore(任何數據庫)。

  4.(發送元數據)

    MetaStore將元數據作為對編譯器的響應發送出去。

  5.(發送計划任務)Send Plan

    編譯器檢查需求並將計划重新發送給Driver。到目前為止,查詢的解析和編譯已經完成。

  6.(執行計划任務)Execute Plan

    Driver將執行計划發送到執行引擎。

  7.(執行Job任務)Execute Job

    在內部,執行任務的過程是MapReduce Job。執行引擎將Job發送到ResourceManager,

     ResourceManager位於Name節點中,並將job分配給datanode中的NodeManager。在這里,查詢執行MapReduce任務.

     7.1.(元數據操作)Metadata Ops 在執行的同時,執行引擎可以使用Metastore執行元數據操作。

   8.(拉取結果集)Fetch Result 執行引擎將從datanode上獲取結果集;

   9.(發送結果集至driver)Send Results 執行引擎將這些結果值發送給Driver。

   10.(driver將result發送至interface)Send Results Driver將結果發送到Hive接口

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM