詳解Greenplum的架構和技術特點
摘要:本文介紹了大數據引擎Greenplum的架構和部分技術特點,從GPDB基本背景開始,在架構的層面上講解GPDB系統內部各個模塊的概貌,然后圍繞GPDB的自身特性,并行執行和運維等技術細節,闡述了為什么選擇使用Greenplum作為下一代的查詢引擎解決方案。
Greenplum的MPP架構
Greenplum(以下簡稱GPDB)是一款開源數據倉庫。基于開源的PostgreSQL改造,主要用來處理大規模數據分析任務,相比Hadoop,Greenplum更適合做大數據的存儲、計算和分析引擎。
GPDB是典型的Master/Slave架構,在Greenplum集群中,存在一個Master節點和多個Segment節點,其中每個節點上可以運行多個數據庫。Greenplum采用shared nothing架構(MPP)。典型的Shared Nothing系統會集數據庫、內存Cache等存儲狀態的信息;而不在節點上保存狀態的信息。節點之間的信息交互都是通過節點互聯網絡實現。通過將數據分布到多個節點上來實現規模數據的存儲,通過并行查詢處理來提高查詢性能。每個節點僅查詢自己的數據。所得到的結果再經過主節點處理得到最終結果。通過增加節點數目達到系統線性擴展。
圖1 GPDB的基本架構
如上圖1為GPDB的基本架構,客戶端通過網絡連接到gpdb,其中Master Host是GP的主節點(客戶端的接入點),Segment Host是子節點(連接并提交SQL語句的接口),主節點是不存儲用戶數據的,子節點存儲數據并負責SQL查詢,主節點負責相應客戶端請求并將請求的SQL語句進行轉換,轉換之后調度后臺的子節點進行查詢,并將查詢結果返回客戶端。
Greenplum Master
Master只存儲系統元數據,業務數據全部分布在Segments上。其作為整個數據庫系統的入口,負責建立與客戶端的連接,SQL的解析并形成執行計劃,分發任務給Segment實例,并且收集Segment的執行結果。正因為Master不負責計算,所以Master不會成為系統的瓶頸。
Master節點的高可用(圖2),類似于Hadoop的NameNode HA,如下圖,Standby Master通過synchronization process,保持與Primary Master的catalog和事務日志一致,當Primary Master出現故障時,Standby Master承擔Master的全部工作。
非常好我支持^.^
(0) 0%
不好我反對
(0) 0%