架構
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接口