MPP(Massively Parallel Processing)是指多個處理器(或獨立的計算機)并行處理一組協(xié)同計算。為了保證各節(jié)點的獨立計算能力,MPP數(shù)據(jù)庫通常采用ShareNothing架構(gòu),最為典型的產(chǎn)品是Teradata(簡稱TD),后來也出現(xiàn)Greenplum(簡稱GPDB)、Vertica、Netezza等競爭者。
單在多年的實際應(yīng)用中,我們發(fā)現(xiàn)MPP從批處理和聯(lián)機訪問兩個方面都顯現(xiàn)了一些不足。
落后節(jié)點:
MPP架構(gòu)下,工作負載節(jié)點是完全對稱的,數(shù)據(jù)均勻的存儲在這些節(jié)點,處理過程中每個節(jié)點使用本地的CPU、內(nèi)存和磁盤等資源完成本地的數(shù)據(jù)加工。這個架構(gòu)雖然提供了較好的擴展性,但隱藏了極大的問題——Straggler,即當某個節(jié)點出現(xiàn)問題導(dǎo)致速度比其他節(jié)點慢時,該節(jié)點會成為Straggler。
此時,無論集群規(guī)模多大,批處理的整體執(zhí)行速度都由Straggler決定,其他節(jié)點上的任務(wù)執(zhí)行完畢后則進入空閑狀態(tài)等待Straggler,而無法分擔其工作。導(dǎo)致節(jié)點處理速度降低的原因多數(shù)是磁盤等硬件損壞,考慮到磁盤本身的一定故障率(根據(jù)統(tǒng)計前三個月內(nèi)2%損壞率,第二年時達到8%)當集群規(guī)模達到一定程度時,故障會頻繁出現(xiàn)使straggler成為一個常規(guī)問題。
并發(fā)性能:
由于MPP的“完全對稱性”,即當查詢開始執(zhí)行時,每個節(jié)點都在并行的執(zhí)行完全相同的任務(wù),這意味著MPP支持的并發(fā)數(shù)和集群的節(jié)點數(shù)完全無關(guān)。根據(jù)該文中的測試數(shù)據(jù),4個節(jié)點的集群和400個節(jié)點的集群支持的并發(fā)查詢數(shù)是相同的,隨著并發(fā)數(shù)增加,這二者幾乎在相同的時點出現(xiàn)性能驟降。
傳統(tǒng)MPP的聯(lián)機查詢主要面向企業(yè)管理層的少數(shù)用戶,對并發(fā)能力的要求較低。而在大數(shù)據(jù)時代,數(shù)據(jù)的使用者從戰(zhàn)略管理層轉(zhuǎn)向戰(zhàn)術(shù)執(zhí)行層乃至一線人員,從孤立的分析場景轉(zhuǎn)向與業(yè)務(wù)交易場景的融合。對于聯(lián)機查詢的并發(fā)能力已經(jīng)遠超MPP時代,成為OLAP場景分布式數(shù)據(jù)庫要考慮的一個重要問題。
從整體架構(gòu)來看,分布式更加看重大數(shù)據(jù)量批量處理的吞吐能力。同時,分布式具備MPP所缺失的批量任務(wù)調(diào)整能力,數(shù)據(jù)的多副本存儲使其具有更多“本地化”數(shù)據(jù)加工的備選節(jié)點,而且數(shù)據(jù)加工處理與
數(shù)據(jù)存儲并不綁定,可以根據(jù)節(jié)點的運行效率動態(tài)調(diào)整任務(wù)分布,從而在大規(guī)模部署的情況下具有整體上更穩(wěn)定的效率。相比之下,MPP在相對較小的數(shù)據(jù)量下具有更好的執(zhí)行效率。
分布式數(shù)據(jù)庫與并行數(shù)據(jù)庫有什么區(qū)別
(1)應(yīng)用目標不同。并行數(shù)據(jù)庫系統(tǒng)的目標是充分發(fā)揮并行計算機的優(yōu)勢,利用系統(tǒng)中的各個處理機結(jié)點并行完成數(shù)據(jù)庫任務(wù),提高數(shù)據(jù)庫系統(tǒng)的整體性能。分布式數(shù)據(jù)庫系統(tǒng)主要目的在于實現(xiàn)場地自治和數(shù)據(jù)的全局透明共享,而不要求利用網(wǎng)絡(luò)中的各個結(jié)點來提高系統(tǒng)處理性能。
(2)實現(xiàn)方式不同。在具體實現(xiàn)方法上,并行數(shù)據(jù)庫系統(tǒng)與分布式數(shù)據(jù)庫系統(tǒng)也有著較大的不同。在并行數(shù)據(jù)庫系統(tǒng)中,為了充分利用各個結(jié)點的處理能力,各結(jié)點間可以采用高速網(wǎng)絡(luò)連接。結(jié)點鍵的數(shù)據(jù)傳輸代價相對較低,當某些結(jié)點處于空閑狀態(tài)時,可以將工作負載過大的結(jié)點上的部分任務(wù)通過高速網(wǎng)傳送給空閑結(jié)點處理,從而實現(xiàn)系統(tǒng)的負載平衡。
但是在分布式數(shù)據(jù)庫系統(tǒng)中,為了適應(yīng)應(yīng)用的需要,滿足部門分布特點的需要,各結(jié)點間一般采用局域網(wǎng)或廣域網(wǎng)相連,網(wǎng)絡(luò)帶寬較低,顛倒點的通信開銷較大。因此,在查詢處理時一般應(yīng)盡量減少結(jié)點間的數(shù)據(jù)傳輸量。
(3)各結(jié)點的地位不同。在并行數(shù)據(jù)庫系統(tǒng)中,各結(jié)點是完全非獨立的,不存在全局應(yīng)用和局部應(yīng)用的概念,在數(shù)據(jù)處理中只能發(fā)揮協(xié)同作用,而不能有局部應(yīng)用。在分布式數(shù)據(jù)庫系統(tǒng)中,各結(jié)點除了能通過網(wǎng)絡(luò)協(xié)同完成全局事務(wù)外,各結(jié)點具有場地自治性,每個場地使獨立的數(shù)據(jù)庫系統(tǒng)。每個場地有自己的數(shù)據(jù)庫、客戶、CPU等資源,運行自己的DBMS,執(zhí)行局部應(yīng)用,具有高度的自治性。
PetaBase的架構(gòu)優(yōu)勢PetaBase基于Hadoop框架打造了高可用、高吞吐的實時/離線接入系統(tǒng),將數(shù)據(jù)統(tǒng)一落入HDFS,形成原始層;基于Hive的小時級任務(wù),分別負責計算生成明細層與匯總層;應(yīng)用層使用PetaBase 內(nèi)部的MPP計算引擎完成各種
報表分析、KPI、決策支持的快速響應(yīng)。

面對實時數(shù)倉的訴求,PetaBase擴展出的流式計算框架能很好地應(yīng)對各種流式處理的需求。從上文可以看到,結(jié)構(gòu)化數(shù)據(jù)的流式處理與半結(jié)構(gòu)化數(shù)據(jù)的流處理基本相似,只是把采集端的 OGG 替換為 Flume,分發(fā)層和計算層都是完全一樣的。從總體流程來看,基本模型是不變的。采用這種統(tǒng)一的、分層次的架構(gòu),有如下幾個優(yōu)勢:
1)基于分層的設(shè)計,可以靈活地擴展或替換流處理框架中的上下游;
2)統(tǒng)一的后端處理,最大限度的保證系統(tǒng)的穩(wěn)定性并減少混合架構(gòu)的復(fù)雜度;
3)批流統(tǒng)一,同樣的 SQL,既可以跑離線也可以跑實時;
4)低延遲,高吞吐,端到端的 Exactly-once;
5)同時支持結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)的實時處理,支持多種異構(gòu)數(shù)據(jù)源的采集;
6)離線實時數(shù)倉的一體化。
作為一款國產(chǎn)分布式大數(shù)據(jù)平臺,PetaBase已經(jīng)在諸多領(lǐng)域證明了自身的價值。尤其是在面向
數(shù)據(jù)倉庫的應(yīng)用中,更是展示了其出色的性能和堅如磐石的可靠性。不管你是聯(lián)機交易,網(wǎng)站訪問,還是物聯(lián)網(wǎng)、車聯(lián)網(wǎng)(傳感器)的應(yīng)用場景,如果你需要一個能支撐T+0到T+n的數(shù)據(jù)平臺,PetaBase是你最好的選擇之一。
(部分內(nèi)容來源網(wǎng)絡(luò),如有侵權(quán)請聯(lián)系刪除)