MPP大資料系統架構,終於有人講明白了

danny_2018發表於2023-03-30

從資源管理角度來看,當前的大資料系統架構主要有兩種:一種是MPP資料庫架構,另一種是Hadoop體系的分層架構。這兩種架構各有優勢和相應的適用場景。另外,隨著光纖網路通訊技術的發展,大資料系統架構正在向儲存與計算分離的架構和雲化架構方發展。

本文首先回顧並行硬體架構的發展,並進一步介紹基於並行硬體架構的資料庫一體機系統與基於MPP架構的資料庫軟體系統。資料庫一體機系統在銀行等大型企業中採用廣泛,一體機的優點是開箱即用、功能豐富、穩定、售後服務好,缺點是價格昂貴、擴充套件不靈活。基於普通伺服器叢集加MPP資料庫軟體構建的資料庫系統,優點是硬體成本低、水平擴充套件容易、易於進行海量資料處理、吞吐量高,缺點是僅適合用於資料分析。

01

並行硬體架構的發展

為了提高計算機系統的處理能力,在處理單元(CPU)效能確定的情況下,就需要增加處理單元的數量,此時從計算單元(CPU)對資源(特別是記憶體)訪問的角度來看,並行硬體架構分為三種,詳細說明如下。

SMP(Symmetric Multi Processing,對稱多處理器)架構。這裡的“對稱”是指所有處理器之間是平等的,並且共享包括實體記憶體在內的所有資源,處理器訪問不同資源的能力(速度)是一致的,每個處理器訪問記憶體中的任何地址所需的時間是相同的,因此SMP架構也被稱為UMA(Uniform Memory Access,一致儲存器訪問)架構。

NUMA(Non-Uniform Memory Access,非一致儲存訪問)架構。NUMA架構伺服器內部有多個處理模組(節點),每個模組有多個CPU和本地記憶體,但每個CPU也可以訪問整個系統的記憶體,當然訪問本模組的記憶體要比訪問其他模組記憶體的速度快,這也是非一致儲存訪問架構名稱的由來。

MPP(Massively Parallel Processing,大規模並行處理)架構。MPP架構是將多個處理節點透過網路連線起來,每個節點是一臺獨立的機器,節點內的處理單元獨佔自己的資源,包括記憶體、硬碟、IO等,也就是每個節點內的CPU不能訪問另一個節點的記憶體(這是MPP與NUMA的主要區別),MPP架構伺服器需要透過軟體實現複雜的排程機制以及並行處理過程。

這三種技術架構的發展是一個並行能力、擴充套件能力逐漸提高的過程,也是耦合度逐漸減低的過程,它們的區別如圖1所示。SMP架構伺服器的主要問題是擴充套件能力十分有限,隨著CPU數量的增加,記憶體訪問衝突出現的機率會快速增加。實驗表明,SMP架構伺服器CPU利用率最好的情況是伺服器內有2~4個CPU。NUMA架構可以在一個物理伺服器內最多整合上百個CPU,但由於訪問非本節點記憶體的延時遠遠超過本地記憶體,因此在CPU達到一定數量後,無法再透過增加CPU實現系統效能的線性提高。MPP架構的擴充套件性最好,理論上對節點數量沒有什麼限制,可以包含幾百個節點。

▲圖1 並行硬體架構對比

02

基於並行硬體架構的資料庫裝置

資料庫廠商推出了很多軟硬體一體的資料庫裝置產品,此類產品是由一臺或多臺主機組成的整合裝置,將伺服器、儲存、作業系統和資料庫軟體整合在一起,可以實現開箱即用。國內一般將此類產品稱為資料庫一體機(Database Machine)。

為了提高效能,此類產品都會採用並行硬體架構。從資源共享角度來看,這類產品的資料庫架構可分成三類,詳細說明如下。

完全透明共享(Shared Everthing)系統。一般是針對單個主機,採用SMP或者NUMA硬體架構,是一個高效能的單臺伺服器,此類產品可以提供較高的事務處理能力。

完全不共享(Shared Nothing)系統。由多個主機組成,採用MPP硬體架構,各節點都有自己私有的CPU、記憶體、硬碟等,不存在共享資源,每個節點是一臺SMP伺服器,在每個節點內都有作業系統和管理資料庫的例項副本,管理本節點的資源,節點間透過網路通訊,能夠處理的資料量更大,適合複雜的資料綜合分析,對事務支援較差。

共享磁碟(Shared Disk)系統。由多個主機組成,也屬於MPP硬體架構,各節點使用自己私有的CPU和記憶體。共享磁碟系統可實現高可用性,即使一個節點故障,也可以透過其他節點訪問所有資料,但由於節點之間不共享記憶體,需要一個鎖管理器來維護節點快取之間的一致性,會帶來額外的開銷。

這三類產品的功能特點對比如下表所示。

▼表1 三類產品的功能特點對比

03

基於MPP架構的資料庫軟體系統

基於MPP架構的資料庫軟體系統,一般簡稱為MPP資料庫,它是執行在由普通商用伺服器組成的伺服器叢集上,伺服器(節點)之間透過網路連線,每一個節點都是獨立的、自我管理的,且計算節點的功能是相同的。也就是說,每個節點是一臺相對獨立的資料庫伺服器,節點上執行著一個單機作業系統和資料管理系統,用於管理本節點上的資源與資料,即節點資源私有。以基於PostgreSQL的MPP資料庫系統Greenplum為例,每個節點上實際執行著一個單機版的PostgreSQL資料庫例項。如果是主從模式,由管理節點接收客戶端請求並將任務分解分派到多個節點上,在每個節點上完成資料讀取和計算後,再將各部分的中間結果彙總到管理節點一起計算,得到最終的結果並返回客戶端。如果是環形模式,則每個節點都可以接收客戶端的請求,並向其他節點請求資料,待完成彙總計算後將結果返回客戶端。MPP資料庫架構(主從模式或環形模式)如圖2所示。

▲ 圖5-2 MPP資料庫架構(主從模式或環形模式)

從硬體架構上來說,MPP資料庫與Shared Nothing+MPP的資料庫一體機是一樣的,區別是伺服器硬體選擇不限定廠商,叢集彈性伸縮更靈活,成本更低。在大多數情況下,所有節點都使用相同的硬體和相同的作業系統。

本文摘編於《資料應用工程:方法論與實踐》,經出版方授權釋出。(書號:9787111704096)轉載請保留文章出處。

推薦理由:一本講解組織資料能力建設與資料應用工程化的著作,旨在為企業應用和管理資料提供組織建設、技術體系和行業解決方案方面的理論指導和實踐經驗。

來自 “ 數倉寶貝庫 ”, 原文作者:鍾大偉;原文連結:https://mp.weixin.qq.com/s/ta2z_qQinAIRC9fpSlwLMQ,如有侵權,請聯絡管理員刪除。

相關文章