HAWQ技術總結


HAWQ技術總結:

1、 官網: http://hawq.incubator.apache.org/

2、 特性

2.1 sql支持完善

ANSI SQL標准,OLAP擴展,標准JDBC/ODBC支持。

2.2 具有MPP的性能。

2.3 支持外部數據整合。

      HAWQ能夠訪問HDFS上的Json文件、Hive、HBase等外部數據。

2.4 支持ACID事務。

  這是很多現有基於SqlonHadoop引擎無法做到的,能夠好的保證數據一致性。

3、 優缺點:

優點:

  * sql支持度好:目前能支持SQL99,SQL2003標准

  * 支持事務。

  * 支持insert

缺點:

  * 基於GreenPlum實現,技術實現復雜,包含多個組件。比如對於外部數據源,需要通過PXF單獨進行處理;

  * C++實現,對內存的控制比較復雜,如果出現segmentfault直接導致當前node掛掉。

  * 安裝配置復雜;

4、 關鍵技術:

4.1 系統架構與關鍵組件

     

  HAWQ集群的主要組件。其中有幾個Master節點:包括HAWQ master節點,HDFS master節點NameNode,YARN master節點ResourceManager。每個Slave節點上部署有HDFS DataNode,YARN NodeManager以及一個HAWQ Segment。HAWQ Segment在執行查詢的時候會啟動多個QE (Query Executor, 查詢執行器)。

查詢執行器運行在資源容器里。在這個架構下,節點可以動態的加入集群,並且不需要數據重分布。當一個節點加入集群時,它會向HAWQ++ Master節點發送心跳,然后就可以接收未來查詢了。

     

  上圖是HAWQ master節點內部架構圖。可以看到在HAWQ的 Master節點內部有如下重要組件:查詢解析器,優化器,資源代理,資源管理器,HDFS元數據緩存,容錯服務,查詢派遣器和元數據服務。在Slave節點上安裝有一個物理Segment,在查詢執行時,針對一個查詢,彈性執行引擎會啟動多個虛擬Segment同時執行查詢,節點間數據交換通過Interconnect(高速互聯網絡,基於UDP)進行。如果一個查詢啟動了1000個虛擬Segment,意思是這個查詢被均勻的分成了1000份任務,這些任務會並行執行。

  其中,資源管理器通過資源代理向全局資源管理器(比如YARN)動態申請資源,並緩存資源。在不需要的時候返回資源。緩存資源的主要原因是減少HAWQ與yarn之間的交互代價。因為HAWQ是支持ms級查詢。如果每一個查詢都向資源管理器申請資源的話,性能會受到影響。位置信息存儲在HDFS NameNode上。如果每個查詢都訪問HDFS NameNode會造成NameNode的瓶頸。所以在HAWQ Master節點上建立了HDFS元數據緩存。查詢派遣器則是在優化完查詢以后,蔣計划派遣到各個節點上執行,並協調查詢執行。

4.2  PXF擴展框架

HAWQ通過名為Pivotal eXtension Framework(PXF)的模塊提供數據聯合功能。除了常見的數據聯合功能外,PXF還利用SQL on Hadoop提供可擴展的功能,PXF提供框架API 使得開發人員能夠數據堆棧開發新的連接器,從而增強強數據引擎的松散耦合。

4.3  GPORCA查詢優化器

在分區查詢、子查詢、去重聚合、insert上改進優化。

5、 Benchmark

完全支持TPC-DS.

     

圖中所示的基准測試是通過TPC-DS中的99個模板生成的111個查詢來執行的。圖中顯示了4種基於SQL-on-Hadoop常見系統的合規等級,綠色和藍色分別表示:每個系統可以優化的查詢個數;可以完成執行並返回查詢結果的查詢個數。從圖中可以看到,HAWQ完成了所有查詢

 


免責聲明!

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



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