MPP大資料系統架構,終於有人講明白了
從資源管理角度來看,當前的大資料系統架構主要有兩種:一種是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,如有侵權,請聯絡管理員刪除。
相關文章
- 大資料基礎架構Hadoop,終於有人講明白了大資料架構Hadoop
- 終於有人把雲端計算、大資料和 AI 講明白了大資料AI
- 終於有人把工業資料採集講明白了
- 終於有人把能把資料採集給講明白了
- 終於有人把雲端計算、大資料和人工智慧講明白了大資料人工智慧
- 資料視覺化的設計技巧,終於有人講明白了!視覺化
- 終於有人把網路爬蟲講明白了爬蟲
- 終於有人把隱私計算講明白了
- ClickHouse與Hive的區別,終於有人講明白了Hive
- 終於有人把Web 3.0和元宇宙講明白了Web元宇宙
- 終於有人把BungeeCord群組服搭建教程方法講明白了
- 5000字長文分享!資料倉儲的建設與框架終於有人給講明白了框架
- 終於有人能把c#樂娛LEY介面的作用講明白了C#
- 瞧!終於有人把智慧製造與工業4.0講明白了
- 終於有人把安全知識圖譜技術講明白了(上篇)
- 分析即服務(AaaS)到底是什麼?終於有人講明白了
- 終於有人把MYSQL索引講清楚了MySql索引
- 五險一金終於有人給講清楚了
- MPP與Hadoop,兩種主流大資料系統架構有啥區別?Hadoop大資料架構
- 大劉終於當上架構師了架構
- BI和報表等於資料分析?終於有人講清楚了它們的區別
- 終於有人將資料中臺講清楚了,原來根本不算啥
- 終於有人把不同標籤的加工內容與落庫講明白了丨DTVision分析洞察篇
- 什麼是大資料系統架構大資料架構
- FunData — 電競大資料系統架構演進大資料架構
- 這一次終於有人把MySQL主從複製講全面了!!!MySql
- 終於有人講透了使用者分析方法論
- 大資料系統架構的通用模組有哪些大資料架構
- 終於有人把15個JavaScript的重要陣列方法給講出來了JavaScript陣列
- 大資料平臺之大資料處理系統的架構大資料架構
- 終於弄明白了 RocketMQ 的儲存模型MQ模型
- 終於明白了Handler的執行機制
- 終於有人講清楚了什麼是雲端計算的業務永續和多活
- Greenplum資料庫系統架構資料庫架構
- HBase 系統架構及資料結構架構資料結構
- Hbase 系統架構與資料結構架構資料結構
- sql學習:終於把sql case語句使用講明白了,一看就懂SQL
- 終於有人講清楚什麼是分析即服務(AaaS)