【轉】初識hive

Hive 不是

一個關係數據庫數據庫

一個設計用於聯機事務處理(OLTP)服務器

實時查詢和行級更新的語言架構

 

Hiver特色

它存儲架構在一個數據庫中並處理數據到HDFS。框架

它是專爲OLAP設計。分佈式

它提供SQL類型語言查詢叫HiveQL或HQL。工具

它是熟知,快速,可擴展和可擴展的。oop

 

Hive架構

下面的組件圖描繪了Hive的結構:spa

該組件圖包含不一樣的單元。下表描述每一個單元:命令行

單元名稱操做設計

用戶接口/界面Hive是一個數據倉庫基礎工具軟件,能夠建立用戶和HDFS之間互動。用戶界面,Hive支持是Hive的Web UI,Hive命令行,HiveHD洞察(在Windows服務器)。

元存儲Hive選擇各自的數據庫服務器,用以儲存表,數據庫,列模式或元數據表,它們的數據類型和HDFS映射。

HiveQL處理引擎HiveQL相似於SQL的查詢上Metastore模式信息。這是傳統的方式進行MapReduce程序的替代品之一。相反,使用Java編寫的MapReduce程序,能夠編寫爲MapReduce工做,並處理它的查詢。

執行引擎HiveQL處理引擎和MapReduce的結合部分是由Hive執行引擎。執行引擎處理查詢併產生結果和MapReduce的結果同樣。它採用MapReduce方法。

HDFS 或 HBASEHadoop的分佈式文件系統或者HBASE數據存儲技術是用於將數據存儲到文件系統。

 

Hive工做原理

下圖描述了Hive 和Hadoop之間的工做流程。

下表定義Hive和Hadoop框架的交互方式:

Step No.操做

Execute Query

Hive接口,如命令行或Web UI發送查詢驅動程序(任何數據庫驅動程序,如JDBC,ODBC等)來執行。

Get Plan

在驅動程序幫助下查詢編譯器,分析查詢檢查語法和查詢計劃或查詢的要求。

Get Metadata

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

Send Metadata

Metastore發送元數據,以編譯器的響應。

Send Plan

編譯器檢查要求,並從新發送計劃給驅動程序。到此爲止,查詢解析和編譯完成。

Execute Plan

驅動程序發送的執行計劃到執行引擎。

Execute Job

在內部,執行做業的過程是一個MapReduce工做。執行引擎發送做業給JobTracker,在名稱節點並把它分配做業到TaskTracker,這是在數據節點。在這裏,查詢執行MapReduce工做。

7.1 Metadata Ops

與此同時,在執行時,執行引擎能夠經過Metastore執行元數據操做。

Fetch Result

執行引擎接收來自數據節點的結果。

Send Results

執行引擎發送這些結果值給驅動程序。

10 Send Results

驅動程序將結果發送給Hive接口。

相關文章
相關標籤/搜索