如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)_第1頁(yè)
如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)_第2頁(yè)
如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)_第3頁(yè)
如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)_第4頁(yè)
如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)

目錄

1.序言.................................................................................................1

2.如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)......................................................................1

2.1.整體架構(gòu)圖.....................................................................................1

2.2.邏輯架構(gòu).......................................................................................2

2.3.業(yè)務(wù)犯構(gòu).......................................................................................3

2.4.應(yīng)用架構(gòu).......................................................................................4

2.5.技術(shù)架構(gòu).......................................................................................5

2.6.數(shù)據(jù)架構(gòu).......................................................................................7

2.7.部署架構(gòu).......................................................................................8

2.8.功能架構(gòu).......................................................................................9

2.9.運(yùn)行架構(gòu)......................................................................................10

3.如何做一個(gè)好的大數(shù)據(jù)平臺(tái)架構(gòu).....................................................................11

3.1.Lambda架構(gòu)需求..............................................................................12

3.2.Lambda架構(gòu)的關(guān)鍵............................................................................12

3.2.1.橫向擴(kuò)容.................................................................................12

3.2.2.故障容4告.................................................................................13

3.2.3.低延遲....................................................................................13

3.2.4.可擴(kuò)展..................................................................................13

3.2.5.易維護(hù)....................................................................................13

3.3.Lambda架構(gòu)的分層.............................................................................13

1.序一

在我們做系統(tǒng)架構(gòu)設(shè)計(jì)時(shí),如何快速的向外界傳達(dá)我們的設(shè)計(jì)思路。4+1試圖適合我們厘清思

路、表達(dá)自己的想法。在我們匯報(bào),爭(zhēng)取領(lǐng)導(dǎo)層的認(rèn)同支持更適合用架構(gòu)圖來(lái)表述我們的觀點(diǎn)。架

構(gòu)圖包括總體架構(gòu)、邏輯架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu)、數(shù)據(jù)架構(gòu)、功能架構(gòu)、網(wǎng)絡(luò)架構(gòu)、運(yùn)行架構(gòu)

寸箋箋守O

2.如何做好大數(shù)據(jù)系統(tǒng)的系統(tǒng)架構(gòu)

2.1.整體架構(gòu)圖

第1頁(yè)共16頁(yè)

總體架構(gòu)基本上把下面所有的架構(gòu)都體現(xiàn)了。下面所有的架構(gòu)也都是要與總體架構(gòu)保持一致。

總體架構(gòu)需要說(shuō)明幾件事情:

整個(gè)系統(tǒng)的硬件設(shè)置是怎么回事?

數(shù)據(jù)大概是從哪里來(lái),怎么采集、存儲(chǔ)、處理、交換的?

做了哪些功能抽象,以便于支撐上層的應(yīng)用?

提供哪些業(yè)務(wù)應(yīng)用?管理、控制等功能有哪些?

終端用戶怎么訪問(wèn)和使用這些應(yīng)用?

該系統(tǒng)與外部系統(tǒng)是怎么進(jìn)行對(duì)接的?

如何保障整個(gè)系統(tǒng)的安全、可靠、高質(zhì)量的建設(shè)?

圖1安防系統(tǒng)架構(gòu)圖

2.2.邏輯架構(gòu)

邏轉(zhuǎn)架構(gòu)就是整體架構(gòu)去掉各種保障、底層的硬件基礎(chǔ)等非軟件開(kāi)發(fā)邏輯核心的內(nèi)容。所以有

很多簡(jiǎn)單的項(xiàng)目壓根就不寫(xiě)邏輯架構(gòu),直接用總體架構(gòu)就行了。復(fù)雜的,就要把上面總體架構(gòu)中間

分層的邏輯給寫(xiě)清楚一些。

關(guān)注的是功能,包含用戶直接可見(jiàn)的功能,還有系統(tǒng)中隱含的功能。或者更加通俗來(lái)描述,邏

輯架構(gòu)更偏向我們?nèi)粘K斫獾摹胺謱印?,把一個(gè)項(xiàng)目分為“表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問(wèn)層”這樣

經(jīng)典的“三層架構(gòu)”。

邏輯架構(gòu)設(shè)計(jì)的目的就是為了告訴讀者,整個(gè)系統(tǒng)是怎么產(chǎn)生左右的。所謂的系統(tǒng)架構(gòu),主要

說(shuō)的就是這部分。早期的單體架構(gòu)、后面的各種分層架構(gòu)、微服務(wù)、服務(wù)網(wǎng)格等,說(shuō)的都是在這里

進(jìn)行設(shè)計(jì)。

第2頁(yè)共16頁(yè)

在設(shè)計(jì)的時(shí)候,會(huì)用到很多種設(shè)計(jì)模式,比如你看到有一個(gè)應(yīng)用支撐層/服務(wù)層之類的,這就

是做了一個(gè)MVC,把業(yè)務(wù)邏輯和用戶前端分離。而所有的邏輯架構(gòu)都有數(shù)據(jù)層,這是最早的

MVP,即數(shù)據(jù)、用戶視圖和處理邏輯分離。當(dāng)然,系統(tǒng)越復(fù)雜,架構(gòu)圖就越復(fù)雜。

圖2上汽通用B2C邏輯架構(gòu)

2.3.業(yè)務(wù)架構(gòu)

企業(yè)架構(gòu)框架白皮書(shū)中把架構(gòu)分為了四個(gè)層次,分別是業(yè)務(wù)、應(yīng)用、數(shù)據(jù)、技術(shù)。只有梳理清

楚了業(yè)務(wù),才能指導(dǎo)應(yīng)用、數(shù)據(jù)和技術(shù)架構(gòu)。業(yè)務(wù)架構(gòu)的分析過(guò)程是復(fù)雜的,最終的產(chǎn)出可能也不

僅僅只是一張架構(gòu)圖。還有更細(xì)節(jié)的流程、建模等產(chǎn)出物。一張好的架構(gòu)圖大概是:分層次、分模

塊講清楚了各個(gè)產(chǎn)品模塊之間的關(guān)系。

第3頁(yè)共16頁(yè)

,智魴中臺(tái)的業(yè)務(wù)架構(gòu)

數(shù)?門(mén)戶ETLIII

0提6力

業(yè)務(wù)效娓B志文忤

2.4.應(yīng)用架構(gòu)

就是應(yīng)用太豐富了,需要整理整理。內(nèi)部有哪些應(yīng)用,怎么對(duì)外部提供服務(wù)。很多項(xiàng)目都沒(méi)有

這個(gè),因?yàn)閼?yīng)用比較少,不值得多廢點(diǎn)人工單獨(dú)寫(xiě)。用以闡述細(xì)化邏輯架構(gòu)。

第4頁(yè)共16頁(yè)

運(yùn)管支律系統(tǒng)

辦公的日

一體化狠供

故字中臺(tái)

企業(yè)展到導(dǎo)技

大■露倉(cāng)庵

圖3互聯(lián)網(wǎng)醫(yī)院-應(yīng)用架構(gòu)

2.5.技術(shù)架構(gòu)

技術(shù)架構(gòu)要干啥也就很清楚了,就是每一層,我們都用什么組件、什么技術(shù)解決什么問(wèn)題。要

求是:精準(zhǔn)、明確、簡(jiǎn)練。但大體上的結(jié)構(gòu)是類似的,從最底層的存儲(chǔ),到最上層的接口。右邊是

一些通用的運(yùn)維體系或者支撐服務(wù)。體現(xiàn)出來(lái)依賴的SDK、第三方類庫(kù)、中間件。

第5頁(yè)共16頁(yè)

圖4云技術(shù)架構(gòu)

現(xiàn)在更多的情況,是多個(gè)系統(tǒng)模塊,組成一個(gè)大的分布式系統(tǒng),或者現(xiàn)存多個(gè)系統(tǒng)的情況下,

需要送行集成開(kāi)發(fā)一個(gè)產(chǎn)品。

這樣的話,技術(shù)架構(gòu),就是高層級(jí)的技術(shù)架構(gòu)了,不僅僅體現(xiàn)的是技術(shù)組件了,而是更高層級(jí)

的一些模塊,甚至規(guī)范。

第6頁(yè)共16頁(yè)

云計(jì)算云基礎(chǔ)設(shè)倍廢用化彈性侵源……

----------------------------------------------------否嘀

圖2螞蟻集團(tuán)分布式金融核心套件bPaaS中臺(tái)技術(shù)架構(gòu)圖

2.6.數(shù)據(jù)架構(gòu)

數(shù)據(jù)架構(gòu)其實(shí)就是從數(shù)據(jù)側(cè)描述數(shù)據(jù)怎么來(lái)、怎么存、怎么加工、怎么使用。從數(shù)據(jù)源開(kāi)始,

數(shù)據(jù)通過(guò)哪些方式集成過(guò)來(lái);集成到數(shù)倉(cāng)之后,都存在哪里,數(shù)倉(cāng)怎么分層,每一層都干啥;在數(shù)

據(jù)集市中又怎么存、怎么管;到數(shù)據(jù)應(yīng)用層又提供哪些應(yīng)用。上面所有的一切,都用什么技術(shù),什

么組件,解決什么問(wèn)題。系統(tǒng)需要什么樣的數(shù)據(jù)、如何存儲(chǔ)、如何進(jìn)行數(shù)據(jù)架構(gòu)設(shè)計(jì)。

第7頁(yè)共16頁(yè)

2.7.部署架構(gòu)

部署架構(gòu)也叫網(wǎng)絡(luò)架構(gòu),就是底層服務(wù)器、網(wǎng)路的設(shè)計(jì),提供網(wǎng)絡(luò)安全、服務(wù)可靠性的設(shè)計(jì)。

再簡(jiǎn)單一些理解,就是你這些應(yīng)用、數(shù)據(jù)庫(kù)都放在那臺(tái)服務(wù)器上,這些服務(wù)器都在哪個(gè)ip端,怎么

進(jìn)行訪問(wèn)。要具體體現(xiàn):機(jī)房;服務(wù)器個(gè)數(shù)、配置;網(wǎng)絡(luò)分區(qū)關(guān)系;體現(xiàn)數(shù)據(jù)庫(kù)、高可用;體現(xiàn)負(fù)

載均衡;

第8頁(yè)共16頁(yè)

就是前臺(tái)頁(yè)面的功能菜單的目錄結(jié)構(gòu)。你怎么組織系統(tǒng)的所有功能,給用戶提供相應(yīng)的服務(wù)。

第9頁(yè)共16頁(yè)

支付系統(tǒng)功能架構(gòu)圖

ftNR*|AP川r]|]|ICE]]■痂;3I

圖5支付系統(tǒng)架構(gòu)

2.9.運(yùn)行架構(gòu)

運(yùn)行架構(gòu)其實(shí)就是軟件內(nèi)部,這些系統(tǒng)內(nèi)部是怎么運(yùn)轉(zhuǎn)的,一般會(huì)畫(huà)很多時(shí)序圖、狀態(tài)圖、活

動(dòng)圖。-?般不單獨(dú)畫(huà)--個(gè)運(yùn)行架構(gòu),而是在概要和詳細(xì)設(shè)計(jì)里畫(huà)。

第10頁(yè)共16頁(yè)

Internet

練31TGR

■too?:費(fèi),.q?*,

3:M-??*?-?e?wa-?a?<a

*31逢

3.如何做一個(gè)好的大數(shù)據(jù)平臺(tái)架構(gòu)

2012年Storm的作者NathanMarz提出的Lambda數(shù)據(jù)處理框架。Lambda架構(gòu)的目標(biāo)是設(shè)計(jì)

出一個(gè)能滿足實(shí)時(shí)大數(shù)據(jù)系統(tǒng)關(guān)健特性的架構(gòu),包括有:高容錯(cuò)、低延時(shí)和可擴(kuò)展等。本文詳細(xì)的

第11頁(yè)共16頁(yè)

講述了Lambda架構(gòu)的需求、關(guān)鍵以及分層。

3.1.Lambda架構(gòu)需求

Lambda架構(gòu)背后的需求是由于MR架構(gòu)的延遲問(wèn)題。MR雖然實(shí)現(xiàn)了分布式、可擴(kuò)展數(shù)據(jù)處理

系統(tǒng)的目的,但是在處理數(shù)據(jù)時(shí)延遲比較嚴(yán)重。實(shí)際上如果內(nèi)存和CPU足夠強(qiáng)大,MR也可以實(shí)現(xiàn)

近實(shí)時(shí)運(yùn)算,但實(shí)際業(yè)務(wù)環(huán)境并非如此,因此我們需要權(quán)衡,選擇實(shí)時(shí)處理和批處理所需要數(shù)據(jù)量

和恰當(dāng)?shù)馁Y源。

2012年Storm的作者NathanMarz提出的Lambda數(shù)據(jù)處理框架。Lambda架構(gòu)的目標(biāo)是設(shè)計(jì)

出一個(gè)能滿足實(shí)時(shí)大數(shù)據(jù)系統(tǒng)關(guān)健特性的架構(gòu),包括有:高容錯(cuò)、低延時(shí)和可擴(kuò)展等。Lambda架

構(gòu)整合離線計(jì)算和實(shí)時(shí)計(jì)算,融合不可變性(Immunability),讀寫(xiě)分離和復(fù)雜性隔離等一系列架

構(gòu)原則,可集成Hadoop,Kafka,Storm,Spark,Hbase等各類大數(shù)據(jù)組件。

3.2.Lambda架構(gòu)的關(guān)鍵

3.2.1.橫向擴(kuò)容

可擴(kuò)展性意味著為滿足日益增長(zhǎng)的用戶服務(wù)需求,同時(shí)不用對(duì)底層架構(gòu)或者代碼,可以通過(guò)現(xiàn)

有機(jī)器添加內(nèi)存或者磁盤(pán)資源來(lái)實(shí)現(xiàn)(垂直擴(kuò)展),或者可以通過(guò)在集群中添加機(jī)器實(shí)現(xiàn)(水平擴(kuò)

展)。無(wú)論是實(shí)時(shí)或者批處理,都應(yīng)該能夠不停服務(wù)的情況下,可以實(shí)施水平擴(kuò)展。

第12頁(yè)共16頁(yè)

3.2.2.故障容錯(cuò)

系統(tǒng)需要妥善處理故障,確保系統(tǒng)在某些組件發(fā)生故障的情況下,整個(gè)系統(tǒng)服務(wù)的可用性???/p>

能部分組件故障會(huì)導(dǎo)致集群中部分節(jié)點(diǎn)宕機(jī),影響了整理的SLA,但是系統(tǒng)還是可以相應(yīng)的,系統(tǒng)

不能有單點(diǎn)故障。

3.2.3,低延遲

很多應(yīng)用對(duì)于讀和寫(xiě)操作的延時(shí)要求非常高,要求對(duì)更新和查詢的響應(yīng)是低延時(shí)的。

3.2.4.可擴(kuò)展

系統(tǒng)需要足夠靈活,能夠?qū)崿F(xiàn)新增和修改需求,乂不需要重構(gòu)整個(gè)系統(tǒng)。實(shí)時(shí)處理和批處理隔

離開(kāi),能夠靈活修改需求。

3.2.5.易維護(hù)

開(kāi)發(fā)部署不能夠太復(fù)雜。

3.3.Lambda架構(gòu)的分層

在Lambda架構(gòu)中新數(shù)據(jù)到之時(shí),會(huì)被同時(shí)分派到批史理層和快速處理層。一旦數(shù)據(jù)到達(dá)批處

理層,按照常規(guī)批處理時(shí)間間隔,每次都從頭開(kāi)始重新計(jì)算并生成批處理視圖。類似地,只要新數(shù)

據(jù)到達(dá)快速處理層,快速處理層就會(huì)使用新數(shù)據(jù)生成快速視圖。在查詢到達(dá)服務(wù)層時(shí),它會(huì)合并快

第13頁(yè)共16頁(yè)

速視圖和批處理視圖來(lái)生成適當(dāng)?shù)牟樵兘Y(jié)果。生成批處理視圖后,快速視圖將被丟棄,除非有新數(shù)

據(jù)抵達(dá),否則只需要查詢批處理視圖,因?yàn)榇藭r(shí)批處理層中擁有所有的數(shù)據(jù)。

Lambda架構(gòu)定義主要層以及每個(gè)組件之間的集成。注意分為以下層:

數(shù)據(jù)源

數(shù)據(jù)源指外部的數(shù)據(jù)庫(kù)、消息隊(duì)列、文件等,可以開(kāi)發(fā)數(shù)據(jù)消費(fèi)層,隱臧來(lái)自不同訪問(wèn)數(shù)據(jù)的

復(fù)雜性,定義好數(shù)據(jù)格式。

數(shù)據(jù)消費(fèi)層

負(fù)責(zé)封裝不能數(shù)據(jù)源獲取數(shù)據(jù)的復(fù)雜性,將其轉(zhuǎn)換可由批處理或者流處理進(jìn)一步使用同一的格

式進(jìn)行消費(fèi)。

批處理層

這是Lambda架構(gòu)核心層之一,批處理接受數(shù)據(jù),持久化到用戶定義好的數(shù)據(jù)結(jié)構(gòu)中,維護(hù)著

主數(shù)據(jù)。數(shù)據(jù)結(jié)構(gòu)一般不做改變,只是追加數(shù)據(jù)。批處理還負(fù)責(zé)創(chuàng)建和維護(hù)批處理視圖。比如我們

常做的HiveETL,統(tǒng)計(jì)一些數(shù)據(jù),最后將結(jié)果保存在hive表中,或者數(shù)據(jù)庫(kù)中,就屬于批處理層。

實(shí)時(shí)層

這是Lambda另一個(gè)核心層,批處理在很多場(chǎng)景下能夠滿足需求,但是隨著業(yè)務(wù)需求“苛刻

性”,他們希望能夠及時(shí)看到數(shù)據(jù),而不是等到第二天才看指標(biāo)變化和分析結(jié)果。所以引入了實(shí)時(shí)

處理。實(shí)時(shí)層解決了一個(gè)問(wèn)題,卻只存儲(chǔ)可立即向用戶提供的一組數(shù)據(jù),這樣就不需要對(duì)全量數(shù)據(jù)

進(jìn)行處理,大大提供處理效率。比如流處理僅僅存儲(chǔ)最近5分鐘的數(shù)據(jù),處理計(jì)算并形成結(jié)果,這

就是我們用sparkstreaming中要有的時(shí)間窗口。

服務(wù)層

這是Lambda架構(gòu)的最后一層,服務(wù)層的職責(zé)是獲取批處理和流處理的結(jié)果,向用戶提供統(tǒng)一

查詢視圖服務(wù)。

第14頁(yè)共16頁(yè)

移動(dòng)AppWeb瀏覽器

應(yīng)用服務(wù)制

數(shù)

據(jù)

數(shù)據(jù)瘴打點(diǎn)果集爬蟲(chóng)系統(tǒng)

數(shù)痛同步系統(tǒng)(數(shù)據(jù)導(dǎo)入)

批量數(shù)提同步實(shí)時(shí)數(shù)據(jù)同羅

散芟

據(jù)

大數(shù)據(jù)計(jì)算實(shí)時(shí)流式大數(shù)據(jù)處理

處大數(shù)據(jù)存儲(chǔ)

(MapReduce,(Storm,Spark

理(HDFS)

Spark,Hive)Streaming)

m

數(shù)

據(jù)

Lambda數(shù)據(jù)架構(gòu)曾經(jīng)成為每一個(gè)公司大數(shù)據(jù)平臺(tái)必備的架構(gòu),它解決了一個(gè)公司大數(shù)據(jù)批量

離線處理和實(shí)時(shí)數(shù)據(jù)處理的需求,

數(shù)據(jù)從底層的數(shù)據(jù)源開(kāi)始,經(jīng)過(guò)各種各樣的格式進(jìn)入大數(shù)據(jù)平臺(tái),在大數(shù)據(jù)平臺(tái)中經(jīng)過(guò)

Kafka.Flume等數(shù)據(jù)組件進(jìn)行收集,然后分成兩條線進(jìn)行計(jì)算。一條線是進(jìn)入流式計(jì)算平臺(tái)(例如

Storm、Flink或者SparkStreaming),去計(jì)算實(shí)時(shí)的一些指標(biāo);另一條線進(jìn)入批量數(shù)據(jù)處理離線計(jì)

算平臺(tái)(例如Mapreduce、Hive,Spark

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論