云計(jì)算技術(shù)-分布式計(jì)算課件_第1頁(yè)
云計(jì)算技術(shù)-分布式計(jì)算課件_第2頁(yè)
云計(jì)算技術(shù)-分布式計(jì)算課件_第3頁(yè)
云計(jì)算技術(shù)-分布式計(jì)算課件_第4頁(yè)
云計(jì)算技術(shù)-分布式計(jì)算課件_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

云計(jì)算原理與實(shí)踐

PrinciplesandPracticeofCloudComputing1BG云計(jì)算原理與實(shí)踐

PrinciplesandPractiOutline2.1分布式計(jì)算概述

2.2分布式計(jì)算的理論基礎(chǔ)2.3分布式系統(tǒng)概述2.4分布式系統(tǒng)的進(jìn)階2.5典型的分布式系統(tǒng)DataScienceStatisticsMachineLearningDomainexpertiseMathematicsDataengineering2BGOutline2.1分布式計(jì)算概述 DataScien2.1分布式計(jì)算概述

2.1.1基本概念2.1.2分布式計(jì)算的原理3BG2.1分布式計(jì)算概述 2.1.1基本概念3BG2.1.1基本概念(1)集中式計(jì)算集中式計(jì)算完全依賴于一臺(tái)大型的中心計(jì)算機(jī)的處理能力,這臺(tái)中心計(jì)算機(jī)稱為主機(jī)(Host或mainframe),與中心計(jì)算機(jī)相連的終端設(shè)備具有各不相同非常低的計(jì)算能力。實(shí)際上大多數(shù)終端完全不具有處理能力,僅作為輸入輸出設(shè)備使用。(2)分布式計(jì)算

與集中式計(jì)算相反,分布式計(jì)算中,多個(gè)通過(guò)網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)都具有一定的計(jì)算能力,它們之間互相傳遞數(shù)據(jù),實(shí)現(xiàn)信息共享,協(xié)作共同完成一個(gè)處理任務(wù)。4BG2.1.1基本概念(1)集中式計(jì)算4BG中科院的定義中國(guó)科學(xué)院對(duì)分布式計(jì)算有一個(gè)定義:

分布式計(jì)算就是在兩個(gè)或多個(gè)軟件互相共享信息,這些軟件既可以在同一臺(tái)計(jì)算機(jī)上運(yùn)行,也可以在通過(guò)網(wǎng)絡(luò)連接起來(lái)的多臺(tái)計(jì)算機(jī)上運(yùn)行。5BG中科院的定義中國(guó)科學(xué)院對(duì)分布式計(jì)算有一個(gè)定義:5BG分布式計(jì)算比起其他算法具有以下幾個(gè)優(yōu)點(diǎn)。

稀有資源可以共享;

通過(guò)分布式計(jì)算可以在多臺(tái)計(jì)算機(jī)上平衡計(jì)算負(fù)載;

可以把程序放在最適合運(yùn)行它的計(jì)算機(jī)上。6BG分布式計(jì)算比起其他算法具有以下幾個(gè)優(yōu)點(diǎn)。6BG2.1.2分布式計(jì)算的原理分布式計(jì)算就是將計(jì)算任務(wù)分?jǐn)偟酱罅康挠?jì)算節(jié)點(diǎn)上,一起完成海量的計(jì)算任務(wù)。而分布式計(jì)算的原理和并行計(jì)算類似,就是將一個(gè)復(fù)雜龐大的計(jì)算任務(wù)適當(dāng)劃分為一個(gè)個(gè)小任務(wù),任務(wù)并行執(zhí)行,只不過(guò)分布式計(jì)算會(huì)將這些任務(wù)分配到不同的計(jì)算節(jié)點(diǎn)上,每個(gè)計(jì)算節(jié)點(diǎn)只需要完成自己的計(jì)算任務(wù)即可,可以有效分擔(dān)海量的計(jì)算任務(wù)。而每個(gè)計(jì)算節(jié)點(diǎn)也可以并行處理自身的任務(wù),更加充分利用機(jī)器的CPU資源。最后再將每個(gè)節(jié)點(diǎn)的計(jì)算結(jié)果匯總,得到最后的計(jì)算結(jié)果。7BG2.1.2分布式計(jì)算的原理分布式計(jì)算就是將計(jì)算任務(wù)分?jǐn)偟椒植际接?jì)算一般分為以下幾步:1.設(shè)計(jì)分布式計(jì)算模型首先要規(guī)定分布式系統(tǒng)的計(jì)算模型。計(jì)算模型決定了系統(tǒng)中各個(gè)組件應(yīng)該如何運(yùn)行,組件之間應(yīng)該如何進(jìn)行消息通信,組件和節(jié)點(diǎn)應(yīng)該如何管理等。2.分布式任務(wù)分配分布式算法不同于普通算法。普通算法通常是按部就班,一步接一步完成任務(wù)。而分布式計(jì)算中計(jì)算任務(wù)是分?jǐn)偟礁鱾€(gè)節(jié)點(diǎn)上的。該算法著重解決的是能否分配任務(wù),或如何分配任務(wù)的問(wèn)題。3.編寫并執(zhí)行分布式程序使用特定的分布式計(jì)算框架與計(jì)算模型,將分布式算法轉(zhuǎn)化為實(shí)現(xiàn),并盡量保證整個(gè)集群的高效運(yùn)行,難點(diǎn):(1)計(jì)算任務(wù)的劃分(2)多節(jié)點(diǎn)之間的通信方式8BG分布式計(jì)算一般分為以下幾步:8BG2.2分布式計(jì)算的理論基礎(chǔ)2.2.1ACID原則2.2.2CAP理論2.2.3BASE理論2.2.4最終一致性2.2.5一致性散列9BG2.2分布式計(jì)算的理論基礎(chǔ)2.2.1ACID原則9B2.2.1ACID原則ACID是數(shù)據(jù)庫(kù)事務(wù)正常執(zhí)行的四個(gè)原則,分別指原子性、一致性、獨(dú)立性及持久性。10BG2.2.1ACID原則ACID是數(shù)據(jù)庫(kù)事務(wù)正常執(zhí)行的四個(gè)2.2.1ACID原則1.A(Atomicity)—原子性原子性很容易理解,也就是說(shuō)事務(wù)里的所有操作要么全部做完,要么都不做,事務(wù)成功的條件是事務(wù)里的所有操作都成功,只要有一個(gè)操作失敗,整個(gè)事務(wù)就失敗,需要回滾。例如銀行轉(zhuǎn)賬,從A賬戶轉(zhuǎn)100元至B賬戶,分為兩個(gè)步驟:①?gòu)腁賬戶取100元;②存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,如果只完成第一步,第二步失敗,錢會(huì)莫名其妙少了100元。11BG2.2.1ACID原則1.A(Atomicity)—原子2.2.1ACID原則2.C(Consistency)—一致性一致性也比較容易理解,也就是說(shuō)數(shù)據(jù)庫(kù)要一直處于一致的狀態(tài),事務(wù)的運(yùn)行不會(huì)改變數(shù)據(jù)庫(kù)原本的一致性約束。例如現(xiàn)有完整性約束a+b=10,如果一個(gè)事務(wù)改變了a,那么必須得改變b,使得事務(wù)結(jié)束后依然滿足a+b=10,否則事務(wù)失敗。12BG2.2.1ACID原則2.C(Consistency)—2.2.1ACID原則3.I(Isolation)—獨(dú)立性所謂的獨(dú)立性是指并發(fā)的事務(wù)之間不會(huì)互相影響,如果一個(gè)事務(wù)要訪問(wèn)的數(shù)據(jù)正在被另外一個(gè)事務(wù)修改,只要另外一個(gè)事務(wù)未提交,它所訪問(wèn)的數(shù)據(jù)就不受未提交事務(wù)的影響。例如交易是從A賬戶轉(zhuǎn)100元至B賬戶,在這個(gè)交易還未完成的情況下,如果此時(shí)B查詢自己的賬戶,是看不到新增加的100元的。13BG2.2.1ACID原則3.I(Isolation)—獨(dú)立2.2.1ACID原則4.D(Durability)—持久性持久性是指一旦事務(wù)提交后,它所做的修改將會(huì)永久保存在數(shù)據(jù)庫(kù)上,即使出現(xiàn)宕機(jī)也不會(huì)丟失。這些原則解決了數(shù)據(jù)的一致性、系統(tǒng)的可靠性等關(guān)鍵問(wèn)題,為關(guān)系數(shù)據(jù)庫(kù)技術(shù)的成熟以及在不同領(lǐng)域的大規(guī)模應(yīng)用創(chuàng)造了必要的條件。14BG2.2.1ACID原則14BG2.2.2CAP理論1.CAP理論定義

2000年7月,加州大學(xué)伯克利分校的埃里克·布魯爾(EricBrewer)教授在ACMPODC會(huì)議上提出CAP猜想。2年后,麻省理工學(xué)院的塞思·吉爾伯符(SethGilbert)和南?!ち制妫∟ancyLynch)從理論上證明了CAP。之后,CAP理論正式成為分布式計(jì)算領(lǐng)域的公認(rèn)定理。一個(gè)分布式系統(tǒng)最多只能同時(shí)滿足一致性(Consistency)、可用性(Availability)和分區(qū)容錯(cuò)性(Partitiontolerance)這三項(xiàng)中的兩項(xiàng),如圖2.1所示。15BG2.2.2CAP理論1.CAP理論定義

15BG一致性一致性指“Allnodesseethesamedataatthesametime”,即更新操作成功并返回客戶端完成后,所有節(jié)點(diǎn)在同一時(shí)間的數(shù)據(jù)完全一致。對(duì)于一致性,可以分為從客戶端和服務(wù)端兩個(gè)不同的視角來(lái)看。

從客戶端來(lái)看,一致性主要指多并發(fā)訪問(wèn)時(shí)更新過(guò)的數(shù)據(jù)如何獲取的問(wèn)題。

從服務(wù)端來(lái)看,則是如何將更新復(fù)制分布到整個(gè)系統(tǒng),以保證數(shù)據(jù)的最終一致性問(wèn)題。16BG一致性一致性指“Allnodesseethesame

可用性可用性是指“Readsandwritesalwayssucceed”,即服務(wù)一直可用,而且是在正常的響應(yīng)時(shí)間內(nèi)。對(duì)于一個(gè)可用性的分布式系統(tǒng),每一個(gè)非故障的節(jié)點(diǎn)必須對(duì)每一個(gè)請(qǐng)求作出響應(yīng)。也就是該系統(tǒng)使用的任何算法必須最終終止。當(dāng)同時(shí)要求分區(qū)容錯(cuò)性時(shí),這是一個(gè)很強(qiáng)的定義:即使是嚴(yán)重的網(wǎng)絡(luò)錯(cuò)誤,每個(gè)請(qǐng)求也必須終止。好的可用性主要是指系統(tǒng)能夠很好地為用戶服務(wù),不出現(xiàn)用戶操作失敗或者訪問(wèn)超時(shí)等用戶體驗(yàn)不好的情況。通常情況下可用性和分布式數(shù)據(jù)冗余、負(fù)載均衡等有著很大的關(guān)聯(lián)。17BG可用性可用性是指“Readsandwritesal

分區(qū)容錯(cuò)性

分區(qū)容錯(cuò)性指“Thesystemcontinuestooperatedespitearbitrarymessagelossorfailureofpartofthesystem”,也就是指分布式系統(tǒng)在遇到某節(jié)點(diǎn)或網(wǎng)絡(luò)分區(qū)故障的時(shí)候,仍然能夠?qū)ν馓峁M足一致性和可用性的服務(wù)。分區(qū)容錯(cuò)性和擴(kuò)展性緊密相關(guān)。在分布式應(yīng)用中,可能因?yàn)橐恍┓植际降脑驅(qū)е孪到y(tǒng)無(wú)法正常運(yùn)轉(zhuǎn)。好的分區(qū)容錯(cuò)性要求應(yīng)用雖然是一個(gè)分布式系統(tǒng),但看上去卻好像是一個(gè)可以運(yùn)轉(zhuǎn)正常的整體。例如現(xiàn)在的分布式系統(tǒng)中有某一個(gè)或者幾個(gè)機(jī)器宕掉了,其他剩下的機(jī)器還能夠正常運(yùn)轉(zhuǎn)滿足系統(tǒng)需求,或者是機(jī)器之間有網(wǎng)絡(luò)異常,將分布式系統(tǒng)分隔為獨(dú)立的幾個(gè)部分,各個(gè)部分還能維持分布式系統(tǒng)的運(yùn)作,這樣就具有好的分區(qū)容錯(cuò)性。18BG分區(qū)容錯(cuò)性分區(qū)容錯(cuò)性指“Thesystemcont2.CAP理論的闡述與證明圖2.2CAP的基本場(chǎng)景19BG2.CAP理論的闡述與證明圖2.2CAP的基本場(chǎng)景19圖2.3分布式系統(tǒng)正常運(yùn)轉(zhuǎn)的流程20BG圖2.3分布式系統(tǒng)正常運(yùn)轉(zhuǎn)的流程20BG圖2.4斷開(kāi)N1和N2之間的網(wǎng)絡(luò)21BG圖2.4斷開(kāi)N1和N2之間的網(wǎng)絡(luò)21BG3.CAP權(quán)衡通過(guò)CAP理論,知道無(wú)法同時(shí)滿足一致性、可用性和分區(qū)容錯(cuò)性這三個(gè)特性,那應(yīng)該如何取舍呢?(1)CAwithoutP:如果不要求P(不允許分區(qū)),則C(強(qiáng)一致性)和A(可用性)是可以保證的。但其實(shí)分區(qū)始終會(huì)存在,因此CA的系統(tǒng)更多的是允許分區(qū)后各子系統(tǒng)依然保持CA。(2)CPwithoutA:如果不要求A(可用),相當(dāng)于每個(gè)請(qǐng)求都需要在Server之間強(qiáng)一致,而P(分區(qū))會(huì)導(dǎo)致同步時(shí)間無(wú)限延長(zhǎng),如此CP也是可以保證的。很多傳統(tǒng)的數(shù)據(jù)庫(kù)分布式事務(wù)都屬于這種模式。(3)APwithoutC:要高可用并允許分區(qū),則需放棄一致性。一旦分區(qū)發(fā)生,節(jié)點(diǎn)之間可能會(huì)失去聯(lián)系,為了高可用,每個(gè)節(jié)點(diǎn)只能用本地?cái)?shù)據(jù)提供服務(wù),而這樣會(huì)導(dǎo)致全局?jǐn)?shù)據(jù)的不一致性?,F(xiàn)在眾多的NoSQL都屬于此類。22BG3.CAP權(quán)衡通過(guò)CAP理論,知道無(wú)法同時(shí)滿足一致性、可用性2.2.3BASE理論丹·普里切特(DanPritchett)在對(duì)大規(guī)模分布式系統(tǒng)的實(shí)踐總結(jié)過(guò)程中,提出了BASE理論,BASE理論是對(duì)CAP理論的延伸,核心思想是即使無(wú)法做到強(qiáng)一致性(StrongConsistency,CAP的一致性就是強(qiáng)一致性),但應(yīng)用可以采用適合的方式達(dá)到最終一致性(EventualConsistency)。BASE是指基本可用(BasicallyAvailable)、軟狀態(tài)(SoftState)、最終一致性(EventualConsistency)。23BG2.2.3BASE理論丹·普里切特(DanPritch1.基本可用基本可用是指分布式系統(tǒng)在出現(xiàn)故障的時(shí)候,允許損失部分可用性,即保證核心可用。電商大促時(shí),為了應(yīng)對(duì)訪問(wèn)量激增,部分用戶可能會(huì)被引導(dǎo)到降級(jí)頁(yè)面,服務(wù)層也可能只提供降級(jí)服務(wù)。這就是損失部分可用性的體現(xiàn)。24BG1.基本可用基本可用是指分布式系統(tǒng)在出現(xiàn)故障的時(shí)候,允許損失2.軟狀態(tài)軟狀態(tài)是指允許系統(tǒng)存在中間狀態(tài),而該中間狀態(tài)不會(huì)影響系統(tǒng)整體可用性。分布式存儲(chǔ)中一般一份數(shù)據(jù)至少會(huì)有三個(gè)副本,允許不同節(jié)點(diǎn)間副本同步的延時(shí)就是軟狀態(tài)的體現(xiàn)。例如MySQLreplication的異步復(fù)制就是這種體現(xiàn)。25BG2.軟狀態(tài)軟狀態(tài)是指允許系統(tǒng)存在中間狀態(tài),而該中間狀態(tài)不會(huì)影3.最終一致性最終一致性是指系統(tǒng)中的所有數(shù)據(jù)副本經(jīng)過(guò)一定時(shí)間后,最終能夠達(dá)到一致的狀態(tài)。弱一致性和強(qiáng)一致性相反,最終一致性是弱一致性的一種特殊情況。BASE和ACID的區(qū)別與聯(lián)系是什么呢?ACID是傳統(tǒng)數(shù)據(jù)庫(kù)常用的設(shè)計(jì)理念,追求強(qiáng)一致性模型。BASE支持的是大型分布式系統(tǒng),提出通過(guò)犧牲強(qiáng)一致性獲得高可用性。ACID和BASE代表了兩種截然相反的設(shè)計(jì)哲學(xué)。在分布式系統(tǒng)設(shè)計(jì)的場(chǎng)景中,系統(tǒng)組件對(duì)一致性要求是不同的,因此ACID和BASE又會(huì)結(jié)合使用。26BG3.最終一致性最終一致性是指系統(tǒng)中的所有數(shù)據(jù)副本經(jīng)過(guò)一定時(shí)間2.2.4最終一致性下面以上面的場(chǎng)景來(lái)描述下不同程度的一致性。

強(qiáng)一致性(即時(shí)一致性):假如A先寫入了一個(gè)值到存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng)保證后續(xù)A、B、C的讀取操作都將返回最新值。

弱一致性:假如A先寫入了一個(gè)值到存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng)不能保證后續(xù)A、B、C的讀取操作能讀取到最新值。此種情況下有一個(gè)“時(shí)間窗口”的概念,它特指從A寫入值,到后續(xù)操作A、B、C讀取到最新值這一段時(shí)間?!皶r(shí)間窗口”類似時(shí)空穿梭門,不過(guò)穿梭門是可以穿越到過(guò)去的,而一致性窗口只能穿越到未來(lái),方法很簡(jiǎn)單,就是“等會(huì)兒”。

最終一致性:是弱一致性的一種特例。假如A首先“寫”了一個(gè)值到存儲(chǔ)系統(tǒng),存儲(chǔ)系統(tǒng)保證如果在A、B、C后續(xù)讀取之前沒(méi)有其他寫操作更新同樣的值的話,最終所有的讀取操作都會(huì)讀取到A寫入的最新值。此種情況下,如果沒(méi)有失敗發(fā)生的話,“不一致性窗口”的大小依賴于以下的幾個(gè)因素:交互延遲,系統(tǒng)的負(fù)載,以及復(fù)制技術(shù)中復(fù)本的個(gè)數(shù)。最終一致性方面最出名的系統(tǒng)可以說(shuō)是DNS系統(tǒng),當(dāng)更新一個(gè)域名的IP以后,根據(jù)配置策略以及緩存控制策略的不同,最終所有的客戶都會(huì)看到最新的值。27BG2.2.4最終一致性下面以上面的場(chǎng)景來(lái)描述下不同程度的一2.2.4最終一致性還有一些最終一致性的變體如下。

Causalconsistency(因果一致性):如果ProcessA通知ProcessB它已經(jīng)更新了數(shù)據(jù),那么ProcessB的后續(xù)讀取操作則讀取A寫入的最新值,而與A沒(méi)有因果關(guān)系的C則可以最終一致性。

Read-your-writesconsistency:如果ProcessA寫入了最新的值,那么ProcessA的后續(xù)操作都會(huì)讀取到最新值。但是其他用戶可能要過(guò)一會(huì)才可以看到。

Sessionconsistency:此種一致性要求客戶端和存儲(chǔ)系統(tǒng)交互的整個(gè)會(huì)話階段保證Read-your-writesconsistency。Hibernate的session提供的一致性保證就屬于此種一致性。

Monotonicreadconsistency:此種一致性要求如果ProcessA已經(jīng)讀取了對(duì)象的某個(gè)值,那么后續(xù)操作將不會(huì)讀取到更早的值。

Monotonicwriteconsistency:此種一致性保證系統(tǒng)會(huì)序列化執(zhí)行一個(gè)Process中的所有寫操作。28BG2.2.4最終一致性還有一些最終一致性的變體如下。28B2.2.5一致性散列1.基本概念一致性散列算法(ConsistentHashing)最早在論文ConsistentHashingandRandomTrees:DistributedCachingProtocolsforRelievingHotSpotsontheWorldWideWeb中被提出。簡(jiǎn)單來(lái)說(shuō),一致性散列將整個(gè)散列值空間組織成一個(gè)虛擬的圓環(huán)。假設(shè)某散列函數(shù)H的值空間為0~232-1(即散列值是一個(gè)32位無(wú)符號(hào)整形),整個(gè)散列空間環(huán)如圖所示。29BG2.2.5一致性散列1.基本概念29BG2.容錯(cuò)性和擴(kuò)展性(1)容錯(cuò)性現(xiàn)假設(shè)NodeC不幸宕機(jī),可以看到此時(shí)對(duì)象A、B、D不會(huì)受到影響,只有C對(duì)象被重定位到NodeD。一般來(lái)說(shuō),在一致性散列算法中,如果一臺(tái)服務(wù)器不可用,則受影響的數(shù)據(jù)僅僅是此服務(wù)器到其環(huán)空間中前一臺(tái)服務(wù)器(即沿著逆時(shí)針?lè)较蛐凶哂龅降牡谝慌_(tái)服務(wù)器)之間的數(shù)據(jù),其他不會(huì)受到影響,如圖所示。30BG2.容錯(cuò)性和擴(kuò)展性(1)容錯(cuò)性30BG2.容錯(cuò)性和擴(kuò)展性(2)擴(kuò)展性如果在系統(tǒng)中增加一臺(tái)服務(wù)器NodeX,如圖所示。此時(shí)對(duì)象A、B、D不受影響,只有對(duì)象C需要重定位到新的NodeX。一般來(lái)說(shuō),在一致性散列算法中,如果增加一臺(tái)服務(wù)器,則受影響的數(shù)據(jù)僅僅是新服務(wù)器到其環(huán)空間中前一臺(tái)服務(wù)器(即沿著逆時(shí)針?lè)较蛐凶哂龅降牡谝慌_(tái)服務(wù)器)之間數(shù)據(jù),其他數(shù)據(jù)也不會(huì)受到影響。31BG2.容錯(cuò)性和擴(kuò)展性(2)擴(kuò)展性31BG2.容錯(cuò)性和擴(kuò)展性(3)虛擬節(jié)點(diǎn)一致性散列算法在服務(wù)節(jié)點(diǎn)太少時(shí),容易因?yàn)楣?jié)點(diǎn)分布不均勻而造成數(shù)據(jù)傾斜問(wèn)題。例如系統(tǒng)中只有兩臺(tái)服務(wù)器,其環(huán)分布如圖所示。32BG2.容錯(cuò)性和擴(kuò)展性(3)虛擬節(jié)點(diǎn)32BG2.3分布式系統(tǒng)概述2.3.1分布式系統(tǒng)的基礎(chǔ)知識(shí)

2.3.2分布式系統(tǒng)的特性

2.3.3分布式存儲(chǔ)系統(tǒng)實(shí)例:ApacheHadoop

33BG2.3分布式系統(tǒng)概述2.3.1分布式系統(tǒng)的基礎(chǔ)知識(shí) 32.3.1分布式系統(tǒng)的基礎(chǔ)知識(shí)

大數(shù)據(jù)技術(shù)的需求是推動(dòng)分布式系統(tǒng)發(fā)展的一大動(dòng)力。大數(shù)據(jù)存儲(chǔ)技術(shù)的演變最初源于互聯(lián)網(wǎng)公司的大規(guī)模分布式存儲(chǔ)系統(tǒng)。與傳統(tǒng)的高端服務(wù)器、高端存儲(chǔ)器和高端處理器不同的是,互聯(lián)網(wǎng)公司的分布式存儲(chǔ)系統(tǒng)由數(shù)量眾多的、低成本和高性價(jià)比的普通PC服務(wù)器通過(guò)網(wǎng)絡(luò)連接而成?;ヂ?lián)網(wǎng)的業(yè)務(wù)發(fā)展很快,而且注重成本,這就使得存儲(chǔ)系統(tǒng)不能依靠傳統(tǒng)的縱向擴(kuò)展的方式,即先買小型機(jī),不夠時(shí)再買中型機(jī),甚至大型機(jī)。互聯(lián)網(wǎng)后端的分布式系統(tǒng)要求支持橫向擴(kuò)展,即通過(guò)增加普通PC服務(wù)器來(lái)提高系統(tǒng)的整體處理能力。普通PC服務(wù)器性價(jià)比高,故障率也高,需要在軟件層面實(shí)現(xiàn)自動(dòng)容錯(cuò),保證數(shù)據(jù)的一致性。另外,隨著服務(wù)器的不斷加入,需要能夠在軟件層面實(shí)現(xiàn)自動(dòng)負(fù)載均衡,使系統(tǒng)的處理能力得到線性擴(kuò)展。34BG2.3.1分布式系統(tǒng)的基礎(chǔ)知識(shí) 大數(shù)據(jù)技術(shù)的需求是推動(dòng)分2.3.2分布式系統(tǒng)的特性

喬治·庫(kù)魯里斯(GeorgeCoulouris)是《分布式系統(tǒng):概念與設(shè)計(jì)》(DistributedSystems:ConceptsandDesign)一書的作者,曾是劍橋大學(xué)的高級(jí)研究員。他曾經(jīng)對(duì)分布式系統(tǒng)下了一個(gè)簡(jiǎn)單的定義:你會(huì)知道系統(tǒng)當(dāng)中的某臺(tái)計(jì)算機(jī)崩潰或停止運(yùn)行了,但是你的軟件卻永遠(yuǎn)不會(huì)。這句話雖然簡(jiǎn)單,但是卻道出了分布式系統(tǒng)的關(guān)鍵特性。分布式系統(tǒng)的特性包括容錯(cuò)性、高可擴(kuò)展性、開(kāi)放性、并發(fā)處理能力和透明性。35BG2.3.2分布式系統(tǒng)的特性 喬治·庫(kù)魯里斯(George2.3.3分布式存儲(chǔ)系統(tǒng)實(shí)例:ApacheHadoop

Hadoop是由Apache基金會(huì)開(kāi)發(fā)的分布式存儲(chǔ)與計(jì)算框架。用戶不需要了解底層的分布式計(jì)算原理就可以輕松開(kāi)發(fā)出分布式計(jì)算程序,可以充分利用集群中閑置的計(jì)算資源,將集群的真正威力調(diào)動(dòng)起來(lái)。Hadoop由兩個(gè)重要模塊組成。一個(gè)是Hadoop分布式文件系統(tǒng)(HadoopDistributedFileSystem),顧名思義,就是一個(gè)分布式的文件系統(tǒng),可以將文件數(shù)據(jù)分布式地存儲(chǔ)在集群中的不同節(jié)點(diǎn)上。另一個(gè)是MapReduce系統(tǒng),是一個(gè)針對(duì)大量數(shù)據(jù)的分布式計(jì)算系統(tǒng)。36BG2.3.3分布式存儲(chǔ)系統(tǒng)實(shí)例:ApacheHadoop圖2.13Hadoop的核心組成37BG圖2.13Hadoop的核心組成37BG1.關(guān)于ApacheHadoopHadoop的思路來(lái)自谷歌提出的MapReduce分布式計(jì)算框架。谷歌的MapReduce框架可以把一個(gè)應(yīng)用程序分解為許多并行計(jì)算指令,跨越大量的計(jì)算節(jié)點(diǎn)運(yùn)行非常巨大的數(shù)據(jù)集。而Hadoop的MapReduce則是對(duì)谷歌MapReduce的開(kāi)源實(shí)現(xiàn)。另一方面其分布式文件系統(tǒng)則是谷歌的GFS的開(kāi)源實(shí)現(xiàn)。Hadoop原本是ApacheNutch中的一個(gè)子項(xiàng)目。后來(lái)Apache將MapReduce模塊與NutchDistributedFileSystem(NDFS)單獨(dú)抽離出來(lái)成為一個(gè)頂級(jí)項(xiàng)目。Hadoop已經(jīng)成為目前世界上最流行的分布式計(jì)算框架之一,Apache也建立了不少與Hadoop相關(guān)的項(xiàng)目,如HBase、Cassandra、Avro、Hive、Mahout等項(xiàng)目。38BG1.關(guān)于ApacheHadoopHadoop的思路來(lái)自谷歌2.HDFS分布式文件系統(tǒng)Hadoop分布式文件系統(tǒng)(HDFS)是一個(gè)主從式的分布式文件系統(tǒng),是GFS的一種開(kāi)源實(shí)現(xiàn)。HDFS可以利用大量廉價(jià)存儲(chǔ)器組成分布式存儲(chǔ)集群,取代昂貴的集中式磁盤存儲(chǔ)陣列。而HDFS集群由一個(gè)NameNode和多個(gè)DataNode組成,除此之外還有用于熱備份的SecondaryNameNode,防止集群出現(xiàn)單點(diǎn)故障。39BG2.HDFS分布式文件系統(tǒng)Hadoop分布式文件系統(tǒng)(HDF2.HDFS分布式文件系統(tǒng)(1)NameNodeNameNode是整個(gè)集群的管理者。它并不存儲(chǔ)數(shù)據(jù)本身,而負(fù)責(zé)存儲(chǔ)文件系統(tǒng)的元數(shù)據(jù)。它負(fù)責(zé)管理文件系統(tǒng)名稱空間,并控制外部客戶端對(duì)文件系統(tǒng)的訪問(wèn)。NameNode決定如何將文件內(nèi)容映射到DataNode的數(shù)據(jù)塊上。此外,實(shí)際數(shù)據(jù)傳輸并不會(huì)經(jīng)過(guò)NameNode,而會(huì)讓對(duì)應(yīng)的DataNode接收實(shí)際數(shù)據(jù),并處理分布式存儲(chǔ)系統(tǒng)的負(fù)載均衡問(wèn)題。整個(gè)文件系統(tǒng)只有一個(gè)NameNode,因此很明顯集群可能會(huì)出現(xiàn)單點(diǎn)故障,這點(diǎn)需要利用SecondaryNameNode來(lái)解決問(wèn)題。40BG2.HDFS分布式文件系統(tǒng)(1)NameNode40BG2.HDFS分布式文件系統(tǒng)(2)SecondaryNameNodeSecondaryNameNode是NameNode的備份節(jié)點(diǎn),HDFS會(huì)將NameNode的數(shù)據(jù)實(shí)時(shí)備份到SecondaryNameNode上,當(dāng)NameNode宕機(jī)需要重啟時(shí),則可以利用SecondaryNameNode中的數(shù)據(jù)加快NameNode的重啟恢復(fù)速度。41BG2.HDFS分布式文件系統(tǒng)(2)SecondaryName2.HDFS分布式文件系統(tǒng)(3)DataNodeDataNode是實(shí)際的數(shù)據(jù)存儲(chǔ)節(jié)點(diǎn),負(fù)責(zé)相應(yīng)NameNode創(chuàng)建、刪除和復(fù)制塊的命令。NameNode會(huì)讀取來(lái)自DataNode的心跳信息,以此判斷DataNode是否存活。同一份數(shù)據(jù)會(huì)以多份副本存儲(chǔ)在不同的DataNode上,一旦某一個(gè)DataNode宕機(jī),NameNode會(huì)立即采取手段來(lái)處理問(wèn)題。42BG2.HDFS分布式文件系統(tǒng)(3)DataNode42BG2.HDFS分布式文件系統(tǒng)(4)MapReduce模型MapReduce既是Hadoop中的模塊,也是一個(gè)計(jì)算模型。用戶需要自己將算法劃分成Map和Reduce兩個(gè)階段。首先將數(shù)據(jù)劃分為小塊的數(shù)據(jù),將數(shù)據(jù)分配到不同計(jì)算節(jié)點(diǎn)的Map任務(wù)中計(jì)算,然后將計(jì)算結(jié)果匯總到Reduce節(jié)點(diǎn)中進(jìn)行合并,得出最終結(jié)果。MapReduce系統(tǒng)也是主從式的計(jì)算系統(tǒng)。在使用YARN后,每個(gè)集群有一個(gè)Resource-Manager,用于管理整個(gè)集群。集群中每個(gè)計(jì)算節(jié)點(diǎn)都有一個(gè)NodeManager,負(fù)責(zé)管理某個(gè)節(jié)點(diǎn)的容器并監(jiān)視其資源使用。每個(gè)應(yīng)用程序由一個(gè)MRAppMaster進(jìn)行管理。43BG2.HDFS分布式文件系統(tǒng)(4)MapReduce模型43B3.ApacheHadoop特性(1)高可靠性:ApacheHadoop可以可靠地將數(shù)據(jù)存儲(chǔ)到節(jié)點(diǎn)上。(2)高可擴(kuò)展性:ApacheHadoop的存儲(chǔ)和計(jì)算節(jié)點(diǎn)可以快速擴(kuò)展,并自動(dòng)進(jìn)行負(fù)載均衡。(3)高效性:一方面ApacheHadoop會(huì)自動(dòng)在各個(gè)節(jié)點(diǎn)之間動(dòng)態(tài)調(diào)動(dòng)數(shù)據(jù),保證每個(gè)節(jié)點(diǎn)存儲(chǔ)均衡,另一方面讀取數(shù)據(jù)時(shí)我們可以從不同節(jié)點(diǎn)并行讀取,提高數(shù)據(jù)讀取的速度。(4)高容錯(cuò)性:ApacheHadoop會(huì)將數(shù)據(jù)冗余存儲(chǔ)在不同節(jié)點(diǎn)上,保證數(shù)據(jù)容錯(cuò)性,計(jì)算任務(wù)失敗時(shí)也會(huì)自動(dòng)重新分配任務(wù)。(5)低成本:ApacheHadoop是開(kāi)源軟件,可以節(jié)省商業(yè)軟件的購(gòu)買成本。同時(shí),ApacheHadoop可以用廉價(jià)節(jié)點(diǎn)組成的集群取代昂貴的超級(jí)計(jì)算機(jī),從而可以節(jié)省硬件成本。44BG3.ApacheHadoop特性(1)高可靠性:Apach2.4分布式系統(tǒng)的進(jìn)階2.4.1分布式存儲(chǔ)系統(tǒng)2.4.2分布式計(jì)算系統(tǒng)2.4.3分布式資源管理系統(tǒng)45BG2.4分布式系統(tǒng)的進(jìn)階2.4.1分布式存儲(chǔ)系統(tǒng)45B2.4.1分布式存儲(chǔ)系統(tǒng)分布式存儲(chǔ)系統(tǒng)大致可分為5個(gè)子方向:結(jié)構(gòu)化存儲(chǔ)、非結(jié)構(gòu)化存儲(chǔ)、半結(jié)構(gòu)化存儲(chǔ)、In-memory存儲(chǔ)及NewSQL。除了這5個(gè)子方向之外,分布式存儲(chǔ)系統(tǒng)還有一系列的理論、算法、技術(shù)作為支撐,例如Paxos、CAP理論、一致性散列、時(shí)鐘技術(shù)、2PC、3PC等。46BG2.4.1分布式存儲(chǔ)系統(tǒng)分布式存儲(chǔ)系統(tǒng)大致可分為5個(gè)子1.結(jié)構(gòu)化存儲(chǔ)結(jié)構(gòu)化存儲(chǔ)的歷史非常古老,典型的場(chǎng)景就是事務(wù)處理系統(tǒng)或者關(guān)系型數(shù)據(jù)庫(kù)(RDBMS)。傳統(tǒng)的結(jié)構(gòu)化存儲(chǔ)都是從單機(jī)做起的,例如大家耳熟能詳?shù)腗ySQL。MySQL的成長(zhǎng)史就是互聯(lián)網(wǎng)的成長(zhǎng)史。除了MySQL之外,PostgreSQL也是近年來(lái)勢(shì)頭非常強(qiáng)勁的一個(gè)RDBMS。傳統(tǒng)的結(jié)構(gòu)化存儲(chǔ)系統(tǒng)強(qiáng)調(diào)以下內(nèi)容。

結(jié)構(gòu)化的數(shù)據(jù)(例如關(guān)系表);

強(qiáng)一致性(例如銀行系統(tǒng),電商系統(tǒng)等場(chǎng)景);

隨機(jī)訪問(wèn)(索引、增刪查改、SQL)。47BG1.結(jié)構(gòu)化存儲(chǔ)結(jié)構(gòu)化存儲(chǔ)的歷史非常古老,典型的場(chǎng)景就是事務(wù)處2.非結(jié)構(gòu)化存儲(chǔ)與結(jié)構(gòu)化存儲(chǔ)不同的是,非結(jié)構(gòu)化存儲(chǔ)強(qiáng)調(diào)的是高可擴(kuò)展性,典型的系統(tǒng)就是分布式文件系統(tǒng)。分布式文件系統(tǒng)也是一個(gè)很老的研究話題,例如20世紀(jì)70年代的XeroxAlto,80年代的NFS、AFS,90年代的xFS等。然而,這些早期的分布式文件系統(tǒng)只是起到了網(wǎng)絡(luò)磁盤的作用,其最大的問(wèn)題就是不支持容錯(cuò)和錯(cuò)誤恢復(fù)。而Google在2003年SOSP會(huì)議上推出的GFS(GoogleFileSystem)則走出了里程碑的一步,其開(kāi)源實(shí)現(xiàn)對(duì)應(yīng)為HDFS。

48BG2.非結(jié)構(gòu)化存儲(chǔ)與結(jié)構(gòu)化存儲(chǔ)不同的是,非結(jié)構(gòu)化存儲(chǔ)強(qiáng)調(diào)的是高3.半結(jié)構(gòu)化存儲(chǔ)半結(jié)構(gòu)化存儲(chǔ)的提出是為了解決結(jié)非結(jié)構(gòu)化存儲(chǔ)系統(tǒng)隨機(jī)訪問(wèn)性能差的問(wèn)題。我們通常會(huì)聽(tīng)到一些流行的名詞,例如NoSQL、Key-ValueStore,包括對(duì)象存儲(chǔ)等。這些都屬于半結(jié)構(gòu)化存儲(chǔ)研究的領(lǐng)域,其中以NoSQL的發(fā)展勢(shì)頭最為強(qiáng)勁。NoSQL系統(tǒng)既有分布式文件系統(tǒng)所具有的可擴(kuò)展性,又有結(jié)構(gòu)化存儲(chǔ)系統(tǒng)的隨機(jī)訪問(wèn)能力(例如隨機(jī)操作),系統(tǒng)在設(shè)計(jì)時(shí)通常選擇簡(jiǎn)單鍵值(K-V)進(jìn)行存儲(chǔ),拋棄了傳統(tǒng)RDBMS里復(fù)雜SQL查詢及ACID事務(wù)。49BG3.半結(jié)構(gòu)化存儲(chǔ)半結(jié)構(gòu)化存儲(chǔ)的提出是為了解決結(jié)非結(jié)構(gòu)化存儲(chǔ)系4.In-memory存儲(chǔ)隨著業(yè)務(wù)的并發(fā)越來(lái)越高,存儲(chǔ)系統(tǒng)對(duì)低延遲的要求也越來(lái)越高。同時(shí)由于摩爾定律以及內(nèi)存的價(jià)格不斷下降,基于內(nèi)存的存儲(chǔ)系統(tǒng)也開(kāi)始普及。顧名思義,In-memory存儲(chǔ)就是將數(shù)據(jù)存儲(chǔ)在內(nèi)存中,從而獲得讀寫的高性能。比較有名的系統(tǒng)包括Memcached和Redis。這些基于K-V鍵值系統(tǒng)的主要目的是為基于磁盤的存儲(chǔ)系統(tǒng)做緩存。還有一些偏向于內(nèi)存計(jì)算的系統(tǒng),例如Distributedsharedmemory、RamCloud、Tachyon(Alluxio)項(xiàng)目等。50BG4.In-memory存儲(chǔ)隨著業(yè)務(wù)的并發(fā)越來(lái)越高,存儲(chǔ)系統(tǒng)對(duì)5.NewSQL前面介紹結(jié)構(gòu)化存儲(chǔ)時(shí)提到,單機(jī)RDBMS系統(tǒng)在可擴(kuò)展性上面臨著巨大的挑戰(zhàn),然而NoSQL不能很好的支持關(guān)系模型。那有沒(méi)有一種系統(tǒng)能兼?zhèn)銻DBMS的特性(例如,完整的SQL支持、ACID事務(wù)支持),又能像NoSQL系統(tǒng)那樣具有強(qiáng)大的可擴(kuò)展能力呢?2012年Google在OSDI會(huì)議上發(fā)表的Spanner,以及2013年在SIGMOD會(huì)議上發(fā)表的F1,讓業(yè)界第一次看到了關(guān)系模型和NoSQL在超大規(guī)模數(shù)據(jù)中心上融合的可能性。不過(guò)由于這些系統(tǒng)大都過(guò)于復(fù)雜,沒(méi)有工業(yè)界大公司的支持還是很難做出來(lái)的。51BG5.NewSQL前面介紹結(jié)構(gòu)化存儲(chǔ)時(shí)提到,單機(jī)RDBMS系統(tǒng)2.4.2分布式計(jì)算系統(tǒng)分布式計(jì)算和并行計(jì)算一樣嗎?可以這樣認(rèn)為:

傳統(tǒng)的并行計(jì)算的要求:投入更多機(jī)器,數(shù)據(jù)大小不變,計(jì)算速度更快。

分布式計(jì)算的要求:投入更多的機(jī)器,能處理更大的數(shù)據(jù)。52BG2.4.2分布式計(jì)算系統(tǒng)分布式計(jì)算和并行計(jì)算一樣嗎?521.傳統(tǒng)基于消息的系統(tǒng)這類系統(tǒng)里比較有代表性的就是MPI(MessagePassingInterface)。目前比較流行的兩個(gè)MPI實(shí)現(xiàn)是MPICH2和OpenMPI。MPI這個(gè)框架非常靈活,對(duì)程序的結(jié)構(gòu)幾乎沒(méi)有太多約束,以至于人們有時(shí)把MPI稱為一組接口API,而不是系統(tǒng)框架。MPI除了提供消息傳遞接口之外,其框架還實(shí)現(xiàn)了資源管理和分配,以及調(diào)度的功能。除此之外,MPI在高性能計(jì)算里也被廣泛使用,通??梢院虸nfiniband這樣的高速網(wǎng)絡(luò)無(wú)縫結(jié)合。53BG1.傳統(tǒng)基于消息的系統(tǒng)這類系統(tǒng)里比較有代表性的就是MPI(M2.MapReduce家族系統(tǒng)這一類系統(tǒng)又稱作Dataflow系統(tǒng),其中以HadoopMapReduce和Spark為代表。其實(shí)在學(xué)術(shù)界有很多類似的系統(tǒng),例如Dryad、Twister等。這一類系統(tǒng)的特點(diǎn)是將計(jì)算抽象成為高層操作,例如像Map、Reduce、Filter這樣的函數(shù)式算子,將算子組合成有向無(wú)環(huán)圖DAG,然后由后端的調(diào)度引擎進(jìn)行并行化調(diào)度。其中,MapReduce系統(tǒng)屬于比較簡(jiǎn)單的DAG,只有Map和reduce兩層節(jié)點(diǎn)。MapReduce這樣的系統(tǒng)之所以可以擴(kuò)展到超大規(guī)模的集群上運(yùn)行,就是因?yàn)槠渫陚涞娜蒎e(cuò)機(jī)制。在Hadoop社區(qū)還有很多基于MapReduce框架的衍生產(chǎn)品,例如Hive(一種并行數(shù)據(jù)庫(kù)OLAP)、Pig(交互式數(shù)據(jù)操作)等。54BG2.MapReduce家族系統(tǒng)這一類系統(tǒng)又稱作Dataflo3.圖計(jì)算系統(tǒng)圖計(jì)算系統(tǒng)是分布式計(jì)算的另一個(gè)分支,這些系統(tǒng)都是把計(jì)算過(guò)程抽象成圖,然后在不同節(jié)點(diǎn)分布式執(zhí)行,例如PageRank這樣的任務(wù),很適合用圖計(jì)算系統(tǒng)來(lái)表示。大數(shù)據(jù)圖是無(wú)法使用單臺(tái)機(jī)器進(jìn)行處理的,如果對(duì)大圖數(shù)據(jù)進(jìn)行并行處理,對(duì)于每一個(gè)頂點(diǎn)之間都是連通的圖來(lái)講,難以分割成若干完全獨(dú)立的子圖進(jìn)行獨(dú)立的并行處理。即使可以分割,也會(huì)面臨并行機(jī)器的協(xié)同處理,以及將最后的處理結(jié)果進(jìn)行合并等一系列問(wèn)題。這需要圖數(shù)據(jù)處理系統(tǒng)選取合適的圖分割以及圖計(jì)算模型來(lái)迎接挑戰(zhàn)并解決問(wèn)題。55BG3.圖計(jì)算系統(tǒng)圖計(jì)算系統(tǒng)是分布式計(jì)算的另一個(gè)分支,這些系統(tǒng)都4.基于狀態(tài)的系統(tǒng)這一類系統(tǒng)主要包括2010年在OSDI會(huì)議上推出的Piccolo,以及后來(lái)2012年在NIPS會(huì)議上Google推出的開(kāi)源機(jī)器學(xué)習(xí)系統(tǒng)DistBelief,再到后來(lái)被機(jī)器學(xué)習(xí)領(lǐng)域廣泛應(yīng)用的參數(shù)服務(wù)器(ParameterServer)架構(gòu)。56BG4.基于狀態(tài)的系統(tǒng)這一類系統(tǒng)主要包括2010年在OSDI會(huì)議5.實(shí)時(shí)流處理系統(tǒng)實(shí)時(shí)流處理系統(tǒng)是為高效實(shí)時(shí)地處理流式數(shù)據(jù)而提供服務(wù)的,更關(guān)注數(shù)據(jù)處理的實(shí)時(shí)性,能夠更加快速地為決策提供支持。流處理是由復(fù)雜事件處理(CEP)發(fā)展而來(lái)的,流處理模式包括兩種:連續(xù)查詢處理模式、可擴(kuò)展數(shù)據(jù)流模式。57BG5.實(shí)時(shí)流處理系統(tǒng)實(shí)時(shí)流處理系統(tǒng)是為高效實(shí)時(shí)地處理流式數(shù)據(jù)而2.4.3分布式資源管理系統(tǒng)

從支持離線處理的MapReduce,到支持在線處理的Storm,從迭代式計(jì)算框架Spark到流式處理框架S4,各種框架誕生于不同的公司或者實(shí)驗(yàn)室,它們各有所長(zhǎng),各自解決了某一類應(yīng)用問(wèn)題。而在大部分互聯(lián)網(wǎng)公司中,這幾種框架可能都會(huì)采用,例如對(duì)于搜索引擎公司,可能的技術(shù)方案如下:網(wǎng)頁(yè)建索引采用MapReduce框架,自然語(yǔ)言處理/數(shù)據(jù)挖掘采用Spark(網(wǎng)頁(yè)P(yáng)ageRank計(jì)算、聚類分類算法等),對(duì)性能要求很高的數(shù)據(jù)挖掘算法用MPI等??紤]到資源利用率、運(yùn)維成本、數(shù)據(jù)共享等因素,公司一般希望將所有這些框架部署到一個(gè)公共的集群中,讓它們共享集群的資源,并對(duì)資源進(jìn)行統(tǒng)一使用,這樣,便誕生了資源統(tǒng)一管理與調(diào)度平臺(tái),典型的代表是Mesos和YARN。58BG2.4.3分布式資源管理系統(tǒng)從支持離線處理資源統(tǒng)一管理和調(diào)度平臺(tái)具有以下特點(diǎn):1.支持多種計(jì)算框架2.?dāng)U展性3.容錯(cuò)性4.高資源利用率5.細(xì)粒度的資源分配59BG資源統(tǒng)一管理和調(diào)度平臺(tái)具有以下特點(diǎn):59BG2.5典型的分布式系統(tǒng)2.5.1網(wǎng)格系統(tǒng)2.5.2P2P系統(tǒng)2.5.3透明計(jì)算2.5.4區(qū)塊鏈系統(tǒng)60BG2.5典型的分布式系統(tǒng)2.5.1網(wǎng)格系統(tǒng)60BG2.5.1網(wǎng)格系統(tǒng)網(wǎng)格是一種能夠?qū)⒍嘟M織擁有和管理的計(jì)算機(jī)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)和科學(xué)儀器綜合協(xié)同使用的基礎(chǔ)設(shè)施。網(wǎng)格應(yīng)用程序大多涉及需要跨越組織界限的可安全共享的大規(guī)模數(shù)據(jù)和/或計(jì)算資源。這使網(wǎng)格應(yīng)用程序的管理和部署成為一項(xiàng)復(fù)雜的任務(wù)。在混雜的網(wǎng)格環(huán)境中,網(wǎng)格中間件為用戶提供了無(wú)縫的計(jì)算能力和統(tǒng)一訪問(wèn)資源能力。目前,世界范圍內(nèi)已經(jīng)發(fā)展有數(shù)個(gè)工具包和系統(tǒng),其中大部分是學(xué)術(shù)研究項(xiàng)目的成果。61BG2.5.1網(wǎng)格系統(tǒng)網(wǎng)格是一種能夠?qū)⒍嘟M織擁有和管理的計(jì)算1.網(wǎng)格的概念Globus定義網(wǎng)格為:一種能夠整合的合作使用的由多家組織所擁有和管理的高端計(jì)算機(jī)、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、實(shí)驗(yàn)設(shè)備的基礎(chǔ)設(shè)施。由Gridbus提出一種基于效能的網(wǎng)格定義:網(wǎng)格是一類并行、分布系統(tǒng),能夠在運(yùn)行時(shí)動(dòng)態(tài)分享、選擇、聚合地理散布的自治資源,依據(jù)它們的可用性、能力、性能、代價(jià)以及用戶對(duì)服務(wù)質(zhì)量的需求。

62BG1.網(wǎng)格的概念Globus定義網(wǎng)格為:一種能夠整合的合作使2.網(wǎng)格的組成63BG2.網(wǎng)格的組成63BG3.Globus工具包Globus是一種研究網(wǎng)格環(huán)境中互操作的中間件技術(shù),為科學(xué)和工程上的網(wǎng)格計(jì)算應(yīng)用程序提供基本的支撐環(huán)境。它定義了構(gòu)建計(jì)算網(wǎng)格的一組基本服務(wù)和功能,包括安全、資源管理、通信、目錄管理等基本服務(wù),被許多應(yīng)用網(wǎng)格項(xiàng)目采用。64BG3.Globus工具包Globus是一種研究網(wǎng)格環(huán)境中互操作2.5.2P2P系統(tǒng)

對(duì)等網(wǎng)絡(luò)系統(tǒng)(Peer-to-Peer),簡(jiǎn)稱P2P系統(tǒng),即媒體及公眾所稱的“點(diǎn)對(duì)點(diǎn)系統(tǒng)”,是一種應(yīng)用在對(duì)等者(Peer)之間分配任務(wù)和工作負(fù)載的分布式應(yīng)用架構(gòu)的系統(tǒng)。對(duì)等網(wǎng)絡(luò)的思想是:網(wǎng)絡(luò)的所有參與者共享他們所擁有的一部分硬件資源,包括處理器資源、存儲(chǔ)資源和網(wǎng)絡(luò)資源等,這些共享資源可以通過(guò)網(wǎng)絡(luò)被其他對(duì)等者直接訪問(wèn)并為之提供服務(wù)和內(nèi)容。65BG2.5.2P2P系統(tǒng)對(duì)等網(wǎng)絡(luò)系統(tǒng)(Peer-P2P系統(tǒng)性質(zhì)(1)高度分散化(2)自組織性(3)多管理域66BGP2P系統(tǒng)性質(zhì)(1)高度分散化66BGP2P系統(tǒng)特點(diǎn)(1)部署低門檻(2)有機(jī)增長(zhǎng)(3)對(duì)故障與攻擊的恢復(fù)力(4)資源的豐富性與多樣性67BGP2P系統(tǒng)特點(diǎn)(1)部署低門檻67BG對(duì)等網(wǎng)絡(luò)應(yīng)用(1)共享及分發(fā)文件(2)流媒體(3)電話(4)志愿計(jì)算68BG對(duì)等網(wǎng)絡(luò)應(yīng)用(1)共享及分發(fā)文件68BG2.5.3透明計(jì)算透明計(jì)算是一種用戶無(wú)須感知計(jì)算機(jī)操作系統(tǒng)、中間件、應(yīng)用程序和通信網(wǎng)絡(luò)的具體所在,只需根據(jù)自己的需求,通過(guò)網(wǎng)絡(luò)從所使用的各種終端設(shè)備(包括

溫馨提示

  • 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)論