第1章 分布式計(jì)算概述 1.分布式計(jì)算的定義 ①分布式計(jì)算是一門(mén)計(jì)算機(jī)科學(xué),主要研究對(duì)象是分布式系統(tǒng)。在介紹分布式計(jì)算概念前,首先簡(jiǎn)單了解一下什么是分布式系統(tǒng)。 簡(jiǎn)單地說(shuō),一個(gè)分布式系統(tǒng)是由若干通過(guò)網(wǎng)絡(luò)互聯(lián)的計(jì)算機(jī)組成的軟硬件系統(tǒng)[1],且這些計(jì)算機(jī)互相配合以完成一個(gè)共同的目標(biāo)(往往這個(gè)共同的目標(biāo)稱為“項(xiàng)目”) ②分布式計(jì)算指在分布式系統(tǒng)上執(zhí)行的計(jì)算。 分布式計(jì)算是將一個(gè)大型計(jì)算任務(wù)分成很多部分分別交給其他的計(jì)算機(jī)處理,并將所有的計(jì)算結(jié)果合并為原問(wèn)題的解決方案。 這里與并行計(jì)算不同的是,并行計(jì)算是使用多個(gè)處理器并行執(zhí)行單個(gè)計(jì)算。 2.分布式計(jì)算的優(yōu)缺點(diǎn) 優(yōu)點(diǎn) ?超大規(guī)模 ?虛擬化 ?高可靠性 ?通用性 ?高可伸縮性 ?按需服務(wù) ?極其廉價(jià) ?容錯(cuò)性 3.分布式計(jì)算相關(guān)計(jì)算形式 分布式云計(jì)算 網(wǎng)格計(jì)算 并行計(jì)算云計(jì)算 Distributed computing grid computing parallel computing cloud computing Internet of Thing 物聯(lián)網(wǎng) BigData 大數(shù)據(jù) 4.集中計(jì)算與分布式計(jì)算 最簡(jiǎn)單的計(jì)算形式是,利用單臺(tái)計(jì)算機(jī)(如個(gè)人計(jì)算機(jī))進(jìn)行計(jì)算。多用戶也可參與單機(jī)計(jì)算。 在該計(jì)算形式中,并發(fā)用戶可通過(guò)分時(shí)技術(shù)共享使單臺(tái)計(jì)算機(jī)中的資源,往往我們稱這種計(jì)算方式為集中式計(jì)算。
5.串行計(jì)算與并行計(jì)算 并行計(jì)算或稱并行運(yùn)算是相對(duì)于串行計(jì)算的概念(如圖1-2所示), 最早出現(xiàn)于上個(gè)世紀(jì)六七十年代,指在并行計(jì)算機(jī)上所作的計(jì)算,即采用多個(gè)處理器來(lái)執(zhí)行單個(gè)指令。 通常并行計(jì)算是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程,是提高計(jì)算機(jī)系統(tǒng)計(jì)算速度和處理能力的一種有效手段。 它的基本思想是用多個(gè)處理器來(lái)協(xié)同求解同一問(wèn)題,即將被求解的問(wèn)題分解成若干個(gè)部分,各部分均由一個(gè)獨(dú)立的處理機(jī)來(lái)并行計(jì)算。 并行計(jì)算可分為時(shí)間上的并行和空間上的并行。
并行運(yùn)算與分布式計(jì)算的區(qū)別是:分布式計(jì)算強(qiáng)調(diào)的是任務(wù)的分布執(zhí)行,而并行計(jì)算強(qiáng)調(diào)的是任務(wù)的并發(fā)執(zhí)行 6.云計(jì)算概念的提出 l 提出者: Google工程師,比希利亞,27歲 l 出發(fā)點(diǎn): 推廣Google超級(jí)強(qiáng)大的計(jì)算資源,招賢納士 l 結(jié)果: 蜂擁而至,名噪一時(shí),被視為“云”的起源 7.云計(jì)算與網(wǎng)格計(jì)算 ①網(wǎng)格計(jì)算:利用互聯(lián)網(wǎng)把地理上廣泛分布的各種資源(計(jì)算、存儲(chǔ)、帶寬、軟件、數(shù)據(jù)、信息、知識(shí)等)連成一個(gè)邏輯整體, 就像一臺(tái)超級(jí)計(jì)算機(jī)一樣,為用戶提供一體化信息和應(yīng)用服務(wù)(計(jì)算、存儲(chǔ)、訪問(wèn)等)。 ②網(wǎng)格計(jì)算強(qiáng)調(diào)資源共享,任何節(jié)點(diǎn)都可以請(qǐng)求使用其它節(jié)點(diǎn)的資源,任何節(jié)點(diǎn)都需要貢獻(xiàn)一定資源給其他節(jié)點(diǎn)。 云計(jì)算強(qiáng)調(diào)專有,請(qǐng)求或獲取的資源是專有的,并且由少數(shù)團(tuán)體提供,使用者不需要貢獻(xiàn)自己的資源。 ③網(wǎng)格計(jì)算側(cè)重并行的計(jì)算集中性需求,并且難以自動(dòng)擴(kuò)展。 云計(jì)算側(cè)重事務(wù)性應(yīng)用,大量的單獨(dú)的請(qǐng)求,可以實(shí)現(xiàn)自動(dòng)或半自動(dòng)的擴(kuò)展。 ④云計(jì)算包含的網(wǎng)格計(jì)算特征: (1)提供在線的計(jì)算、存儲(chǔ)等服務(wù) (2)超大規(guī)模的資源組合 (3)資源的虛擬化 8.云計(jì)算與分布式計(jì)算 ①分布式計(jì)算(狹義):將待解決問(wèn)題分成多個(gè)小問(wèn)題,再分配給許多計(jì)算系統(tǒng)處理,最后將處理結(jié)果加以綜合。 特點(diǎn):把計(jì)算任務(wù)分派給網(wǎng)絡(luò)中的多臺(tái)獨(dú)立的機(jī)器 優(yōu)點(diǎn) a.稀有資源可以共享 b.通過(guò)分布式計(jì)算可以在多臺(tái)計(jì)算機(jī)上平衡計(jì)算負(fù)載 c.可以把程序放在最適合運(yùn)行它的計(jì)算機(jī)上 ②流行的分布式項(xiàng)目 § SETI@Home: 尋找外星文明 § RC-72: 密碼分析破解,研究和尋找最為安全的密碼系統(tǒng) § Folding@home: 研究蛋白質(zhì)折疊、聚合問(wèn)題 § United Devices: 尋找對(duì)抗癌癥的有效的藥物 § GIMPS: 尋找最大的梅森素?cái)?shù)(解決較為復(fù)雜的數(shù)學(xué)問(wèn)題) ③云計(jì)算包含的分布式計(jì)算特征: (1)通過(guò)資源調(diào)度和組合滿足用戶的資源請(qǐng)求 (2)對(duì)外提供統(tǒng)一的、單一的接口 9.云計(jì)算與并行計(jì)算 并行計(jì)算:是指同時(shí)使用多種計(jì)算資源解決計(jì)算問(wèn)題的過(guò)程。通常指一個(gè)程序的多個(gè)部分同時(shí)運(yùn)行于多個(gè)處理器上。 特點(diǎn):把計(jì)算任務(wù)分派給系統(tǒng)內(nèi)的多個(gè)運(yùn)算單元 并行計(jì)算問(wèn)題的特征 n 將工作分離成離散部分,有助于同時(shí)解決 n 隨時(shí)并及時(shí)地執(zhí)行多個(gè)程序指令(多條線同時(shí)運(yùn)行) n 多計(jì)算資源下解決問(wèn)題的耗時(shí)要少于單個(gè)計(jì)算資源下的耗時(shí) 云計(jì)算包含的并行計(jì)算特征: (1)用戶資源(單一類(lèi)型和組合類(lèi)型)請(qǐng)求的同時(shí)處理 10.云計(jì)算與對(duì)等計(jì)算 對(duì)等計(jì)算系統(tǒng)中,每個(gè)節(jié)點(diǎn)都擁有對(duì)等的功能與責(zé)任,既可以充當(dāng)服務(wù)器向其他節(jié)點(diǎn)提供數(shù)據(jù)或服務(wù),又可以作為客戶機(jī)享用其他節(jié)點(diǎn)提的供數(shù)據(jù)或服務(wù), 節(jié)點(diǎn)之間的交互可以是直接對(duì)等的,任何節(jié)點(diǎn)可以隨時(shí)自由地加入或離開(kāi)系統(tǒng)。 對(duì)等計(jì)算:有可能作為云計(jì)算的一個(gè)類(lèi)型 n 預(yù)測(cè):將可能以“對(duì)等子云”的形式出現(xiàn)在云計(jì)算中。 n 依據(jù):云計(jì)算對(duì)超大規(guī)模、多類(lèi)型資源的統(tǒng)一管理是困難的; 對(duì)等計(jì)算具有魯棒性、可擴(kuò)展性、成本、搜索等方面的優(yōu)點(diǎn) n Google的云計(jì)算服務(wù)曾出現(xiàn)嚴(yán)重問(wèn)題,Gmail、Blogger和Spreadsheet等服務(wù)均長(zhǎng)時(shí)間當(dāng)機(jī)。亞馬遜S3云計(jì)算服務(wù)也曾出現(xiàn)問(wèn)題。而P2P系統(tǒng)則有更強(qiáng)的抗毀能力。 1.分布式系統(tǒng)介紹 分布式系統(tǒng)指通過(guò)網(wǎng)絡(luò)互連,可協(xié)作執(zhí)行某個(gè)任務(wù)的獨(dú)立計(jì)算機(jī)集合。 不共享內(nèi)存或程序執(zhí)行空間的一系列計(jì)算機(jī)被認(rèn)為是相互獨(dú)立的
2.分布式系統(tǒng)特征 v 可靠性: 指一個(gè)分布式系統(tǒng)在它的某一個(gè)或多個(gè)硬件的軟件組件造成故障時(shí),仍能提供服務(wù)的能力。 v 可擴(kuò)展性: 指一個(gè)系統(tǒng)為了支持持續(xù)增長(zhǎng)的任務(wù)數(shù)量可以不斷擴(kuò)展的能力。 v 可用性: 指一個(gè)系統(tǒng)盡可能地限制系統(tǒng)因故障而暫停的能力。 v 高效性: 指一個(gè)分布式系統(tǒng)通過(guò)分散的計(jì)算資源來(lái)實(shí)現(xiàn)任務(wù)執(zhí)行的高效率。 3.CAP理論
1. 進(jìn)程間通信
①分布式計(jì)算的核心技術(shù)是進(jìn)程間通信(interprocess communication,IPC), 即在互相獨(dú)立的進(jìn)程(進(jìn)程是程序的運(yùn)行時(shí)表示)間通信 及 共同協(xié)作以完成某項(xiàng)任務(wù)的能力。 ②在分布式計(jì)算中,兩個(gè)或多個(gè)進(jìn)程按約定的某種協(xié)議進(jìn)行IPC,此處協(xié)議是指數(shù)據(jù)通信各參與進(jìn)程必須遵守的一組規(guī)則。 ③在協(xié)議中,一個(gè)進(jìn)程有些時(shí)候可能是發(fā)送者,在其他時(shí)候則可能是接收者。 當(dāng)一個(gè)進(jìn)程與另一個(gè)進(jìn)程進(jìn)行通信時(shí), IPC被稱為單播(unicast); 當(dāng)一個(gè)進(jìn)程與另外一組進(jìn)程進(jìn)行通信時(shí), IPC被稱為組播(multicast)。 2.IPC程序接口的四種基本操作 發(fā)送(Send)。該操作由發(fā)送進(jìn)程發(fā)起,旨在向接收進(jìn)程傳輸數(shù)據(jù)。操作必須允許發(fā)送進(jìn)程識(shí)別接收進(jìn)程和定義待傳數(shù)據(jù)。 接收(Receive)。該操作由接收進(jìn)程發(fā)起,旨在接收發(fā)送進(jìn)程發(fā)來(lái)的數(shù)據(jù)操作必須允許接收進(jìn)程識(shí)別發(fā)送進(jìn)程和定義保存數(shù)據(jù)的內(nèi)存空間,該內(nèi)存隨后被接收者訪問(wèn)。 連接(Connect)。對(duì)面向連接的IPC,必須有允許在發(fā)起進(jìn)程和指定進(jìn)程間建立邏輯連擊的操作:其中以進(jìn)程發(fā)出請(qǐng)求連接操作而另一進(jìn)程發(fā)出接受連接操作。 斷開(kāi)連接(Disconnect)。對(duì)面向連接的IPC,該操作允許通信的雙方關(guān)閉先前建立起來(lái)的某一邏輯連接。 3. HTTP進(jìn)程間通信實(shí)例
4. 事件同步 IPC中的一個(gè)主要難點(diǎn)是進(jìn)行IPC的各相關(guān)進(jìn)程是獨(dú)立執(zhí)行的,各進(jìn)程不知道對(duì)方進(jìn)程的情況。 協(xié)議涉及的雙方必須按特定順序發(fā)起IPC操作,否則可能通信失敗。 因此,參與通信的兩個(gè)進(jìn)程需要同步他們的操作,由一方發(fā)送數(shù)據(jù),另一方則需要等待所有數(shù)據(jù)發(fā)送完成時(shí),開(kāi)始接收數(shù)據(jù)。 IPC設(shè)施提供事件同步的最簡(jiǎn)單的方法是使用阻塞(blocking)機(jī)制或同步(synchronous) ,即掛起某一進(jìn)程的執(zhí)行,直到該進(jìn)程發(fā)起的某個(gè)操作執(zhí)行結(jié)束。 另外,IPC操作可以是異步(asynchronous)或非阻塞操作(nonblocking)。進(jìn)程發(fā)起的異步操作不會(huì)引起阻塞。 因此,一旦向IPC設(shè)施發(fā)出異步操作后,進(jìn)程可以繼續(xù)執(zhí)行。 當(dāng)該異步操作完成后,進(jìn)程才會(huì)隨后得到IPC設(shè)施的通知。
(一)同步send和同步receive receive操作的發(fā)出導(dǎo)致該發(fā)起進(jìn)程掛起,直到接收完成該操作的所有數(shù)據(jù)。同樣地,send操作的發(fā)出導(dǎo)致發(fā)送進(jìn)程掛起。 當(dāng)發(fā)送的數(shù)據(jù)被進(jìn)程2接收后,主機(jī)2的IPC設(shè)施向主機(jī)1的IPC設(shè)施發(fā)送一條確認(rèn)信息,進(jìn)程1隨后可被解鎖。 注意,消息確認(rèn)由兩臺(tái)主機(jī)的IPC設(shè)施處理,并且對(duì)兩個(gè)進(jìn)程是透明的。
(二)異步send和同步receive receive操作的發(fā)出將導(dǎo)致接收進(jìn)程掛起,直到接收到滿足操作的所有數(shù)據(jù)為止。然而,send操作的發(fā)出不會(huì)導(dǎo)致發(fā)送進(jìn)程掛起。 在本例中,發(fā)送進(jìn)程永遠(yuǎn)不會(huì)被阻塞,因此,進(jìn)程2所在主機(jī)的IPC設(shè)施不必發(fā)送確認(rèn)消息。
(三)同步send和 異步receive情形1 接收操作請(qǐng)求的數(shù)據(jù)在receive操作發(fā)出時(shí)已經(jīng)到達(dá),在這種情況下,數(shù)據(jù)被立即傳送到進(jìn)程2,主機(jī)2的IPC設(shè)施返回的確認(rèn)消息將進(jìn)程1解鎖
(四)同步send和異步receive情形2 receive操作請(qǐng)求的數(shù)據(jù)仍未到達(dá);沒(méi)有數(shù)據(jù)傳遞到該進(jìn)程。 接收進(jìn)程負(fù)責(zé)確定已真正接收到數(shù)據(jù),如果需要的話,重復(fù)receive操作,直到數(shù)據(jù)到達(dá) (注意,通常由程序使用循環(huán)來(lái)重復(fù)發(fā)出receive操作,直到等待的數(shù)據(jù)全部接收。這種重復(fù)嘗試技術(shù)被稱為輪詢技術(shù))。 進(jìn)程1被無(wú)限期阻塞,直到進(jìn)程2重發(fā)receive請(qǐng)求,并最終收到主機(jī)2 IPC設(shè)施的確認(rèn)消息
(五) 同步send和異步receive情形3 receive操作請(qǐng)求的數(shù)據(jù)仍未到達(dá)。 當(dāng)請(qǐng)求數(shù)據(jù)到達(dá)時(shí),主機(jī)2的IPC設(shè)施將通告進(jìn)程2,此時(shí)進(jìn)程2可以繼續(xù)處理數(shù)據(jù)。 該情形要求進(jìn)程2提供一個(gè)可以被IPC設(shè)施調(diào)用的偵聽(tīng)接口或事件號(hào),用于向進(jìn)程通告請(qǐng)求數(shù)據(jù)的到達(dá)
(六) 異步send和異步receive 如果雙方都沒(méi)有阻塞,數(shù)據(jù)能傳送到接收者的唯一途徑就是由IPC設(shè)施保留接收到的數(shù)據(jù)。 接收進(jìn)程隨后可以被通告數(shù)據(jù)到達(dá)了。 另外,接收進(jìn)程也可以輪詢數(shù)據(jù)是否已經(jīng)到達(dá),并在所等待的數(shù)據(jù)到達(dá)時(shí),對(duì)其進(jìn)行處理
5. 死鎖和超時(shí) u 雖然阻塞提供IPC必要的同步,阻塞以錯(cuò)誤的順序發(fā)起是可能會(huì)引起死鎖( deadlocks )。 u 連接和接收操作可能會(huì)導(dǎo)致無(wú)限期的阻塞( indefinite blocking ),死鎖也可能造成無(wú)限期的阻塞。 u 例如,進(jìn)程Process1和進(jìn)程Process2因相互等待對(duì)方而無(wú)限期阻塞,此時(shí),即由無(wú)限期阻塞而產(chǎn)生了進(jìn)程的死鎖。見(jiàn)后頁(yè)的圖示說(shuō)明。 u 我們一般不期望被請(qǐng)求的進(jìn)程被無(wú)期限掛起(即無(wú)期限阻塞),無(wú)期限阻塞可以通過(guò)使用超時(shí)或子線程來(lái)避免。
6. 死鎖 盡管阻塞機(jī)制為IPC提供了必要的同步,但是同步操作如果按照錯(cuò)誤的順序執(zhí)行就可能會(huì)產(chǎn)生死鎖,造成進(jìn)程被無(wú)限期掛起。
7. 用線程實(shí)現(xiàn)異步操作 在使用IPC編程接口時(shí),了解該操作是同步操作還是異步操作是非常重要的。 如果阻塞操作僅僅是發(fā)送或接收,那么編程人員就可以使用子進(jìn)程或線程來(lái)提供阻塞,讓程序的主線程或父進(jìn)程繼續(xù)執(zhí)行其他的任務(wù), 而子進(jìn)程或線程將被掛起,直到接收到響應(yīng)為止,這就是所說(shuō)的異步處理。
8. 事件狀態(tài)圖 一個(gè)包括兩個(gè)并發(fā)進(jìn)程A和B的請(qǐng)求-響應(yīng)協(xié)議的事件狀態(tài)圖。 每個(gè)進(jìn)程隨事件變化的執(zhí)行情況用垂直線表示,時(shí)間沿垂直線向下增加。 執(zhí)行線上的實(shí)線段表示進(jìn)程處于活動(dòng)狀態(tài)的時(shí)間段,虛線段表示進(jìn)程被阻塞的時(shí)間段。
9. HTTP順序狀態(tài)圖
10. HTTP會(huì)話期間的對(duì)話
11. IPC范型 在最低抽象層,IPC利用底層的串行或并行數(shù)據(jù)傳輸機(jī)制,在連接上傳輸二進(jìn)制流。例如,這種IPC范型可以用于編寫(xiě)網(wǎng)絡(luò)驅(qū)動(dòng)軟件。 這種形式的IPC屬于網(wǎng)絡(luò)或操作系統(tǒng)編程領(lǐng)域。 下一個(gè)抽象層是眾所周知的一種范型,稱作socket應(yīng)用程序接口(socket API)。在socket范型中,兩個(gè)進(jìn)程使用名為socket的邏輯構(gòu)造交換數(shù)據(jù),每一方都要建立一個(gè)socket。待發(fā)送數(shù)據(jù)被寫(xiě)入socket。在另一端,接收進(jìn)程從自身的socket中讀取或提取數(shù)據(jù)。 遠(yuǎn)程過(guò)程調(diào)用(remote procedure call)或遠(yuǎn)程方法調(diào)用(remote method invocation)范型通過(guò)允許向遠(yuǎn)程進(jìn)程發(fā)送過(guò)程調(diào)用或方法調(diào)用,來(lái)提供更高層次的抽象。這是,數(shù)據(jù)作為參數(shù)和返回值,在兩個(gè)進(jìn)程間進(jìn)行傳遞。
第2章 分布式計(jì)算范型概述 1.消息傳遞 一個(gè)進(jìn)程發(fā)送代表請(qǐng)求的消息,該消息被傳送到接受者;接受者處理該請(qǐng)求,并發(fā)送一條應(yīng)答消息。 隨后,該應(yīng)答可能觸發(fā)下一個(gè)請(qǐng)求,并導(dǎo)致下一個(gè)應(yīng)答消息。 如此不斷反復(fù)傳遞消息,實(shí)現(xiàn)兩個(gè)進(jìn)程間的數(shù)據(jù)交換. 基于該范型的開(kāi)發(fā)工具有Socket應(yīng)用程序接口(Socket API)和信息傳遞接口(Message Passing Interface,MPI)等
2. 客戶-服務(wù)器范型 客戶-服務(wù)器范型(簡(jiǎn)稱CS范型)是網(wǎng)絡(luò)應(yīng)用中使用最多一種分布式計(jì)算范型,該模型將非對(duì)稱角色分配給兩個(gè)協(xié)作進(jìn)程。 其中,服務(wù)器進(jìn)程扮演服務(wù)提供者角色,被動(dòng)地等待請(qǐng)求的到達(dá)。 另一個(gè)客戶進(jìn)程向服務(wù)器發(fā)起請(qǐng)求,并等待服務(wù)器響應(yīng)。 當(dāng)前最流行的互聯(lián)網(wǎng)應(yīng)用WWW(或稱為WEB)是基于客戶-服務(wù)器范型的一個(gè)典型分布式應(yīng)用。
3. Peer-to-Peer范型 peer-to-peer范型源于P2P網(wǎng)絡(luò)(又稱為對(duì)等計(jì)算網(wǎng)絡(luò)),簡(jiǎn)稱為P2P范型。 P2P網(wǎng)絡(luò)是無(wú)中心服務(wù)器。 在peer-to-peer范型中,各參與進(jìn)程的地位是平等的,都具有相同的性能和責(zé)任(因此,稱它們?yōu)?span lang="EN-US">peer)。 每個(gè)參與者(進(jìn)程)都可以向另一個(gè)參與者發(fā)起請(qǐng)求和接收響應(yīng)。 在一個(gè)基于P2P范型的分布式應(yīng)用中,每一個(gè)參與的進(jìn)程往往既承擔(dān)的服務(wù)器進(jìn)程的角色(資源提供者),又承擔(dān)了客戶進(jìn)程的角色(資源請(qǐng)求者)。
4. Peer-to-Peer范型典型應(yīng)用
5. 消息系統(tǒng) 消息系統(tǒng)充當(dāng)了一些相當(dāng)獨(dú)立的進(jìn)程之間的中介。不同的進(jìn)程以非耦合的方式,通過(guò)消息系統(tǒng)異步地交換消息。消息發(fā)送者(進(jìn)程)在發(fā)送消息時(shí),將一條消息放入消息系統(tǒng)中,后者接著將該消息轉(zhuǎn)發(fā)到與各個(gè)接受者(進(jìn)程)相應(yīng)的消息接收隊(duì)列中,一旦消息發(fā)送出去,發(fā)送者即可執(zhí)行其他任務(wù)了
u 消息系統(tǒng)模型可以進(jìn)一步劃分為兩種子類(lèi)型:點(diǎn)對(duì)點(diǎn)消息模型(Point-to-point message model)和發(fā)布訂閱消息模型(Public/Subscribe message model)。 u 在這種模型中,消息系統(tǒng)將來(lái)自發(fā)送者的一條消息轉(zhuǎn)發(fā)到接收者的消息隊(duì)列中。 與基本的消息傳遞模型不同的是,這種中間件模型提供了消息暫存的功能,從而可以將消息的發(fā)送和接受分離。 與基本的消息傳遞模型相比,點(diǎn)對(duì)點(diǎn)消息模型為實(shí)現(xiàn)異步消息操作提供了額外的一層抽象。 如果要在基本的消息傳遞模型中達(dá)到同樣的結(jié)果,就必須借助于線程或者子進(jìn)程技術(shù)。 u 在該模型中,每條消息都與某一主體或事件相關(guān)。對(duì)某個(gè)事件感興趣的應(yīng)用程序可以訂閱與該事件相關(guān)的消息。 當(dāng)訂閱者等待的時(shí)間發(fā)生時(shí),觸發(fā)該事件的進(jìn)程將發(fā)布一條消息來(lái)宣布該事件或主題。 中間件消息系統(tǒng)將這條消息分發(fā)給該消息的所有訂閱者。 發(fā)布/訂閱消息模型提供了一種用于組播或組通信的強(qiáng)大抽象機(jī)制。 6. 遠(yuǎn)程過(guò)程調(diào)用 如果進(jìn)程A希望向另一個(gè)進(jìn)程B發(fā)出請(qǐng)求,就可以向進(jìn)程B發(fā)出一個(gè)過(guò)程調(diào)用,同時(shí)傳遞的還有一組參數(shù)值。與本地過(guò)程調(diào)用的情況一樣,該遠(yuǎn)程過(guò)程調(diào)用也會(huì)觸發(fā)進(jìn)程B所提供的某一過(guò)程中預(yù)定義的動(dòng)作。過(guò)程執(zhí)行完畢后,進(jìn)程B將返回一個(gè)值給進(jìn)程A。
圖2-7 遠(yuǎn)程過(guò)程調(diào)用
在分布式系統(tǒng)中,數(shù)據(jù)庫(kù)一般駐存在服務(wù)器上,客戶機(jī)(進(jìn)程)通過(guò)遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)功能訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器(如圖所示),現(xiàn)有的遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)是使用RPC模式的, 例如Oracle數(shù)據(jù)庫(kù)提供了存儲(chǔ)過(guò)程機(jī)制,系統(tǒng)與用戶定義的存儲(chǔ)過(guò)程在數(shù)據(jù)庫(kù)服務(wù)器上,用戶在客戶端使用RPC模式調(diào)用存儲(chǔ)過(guò)程獲取數(shù)據(jù)。
7. 分布式對(duì)象 遠(yuǎn)程方法調(diào)用(Remote Method Invocation,RMI)是面向?qū)ο蟀姹镜?span lang="EN-US">RPC。 在該范型中,進(jìn)程可以調(diào)用對(duì)象方法,而該對(duì)象可駐留于某遠(yuǎn)程主機(jī)中。與RPC一樣,參數(shù)可隨方法調(diào)用傳遞,也可提供返回值
8. 對(duì)象請(qǐng)求代理 對(duì)象請(qǐng)求代理范型由對(duì)象請(qǐng)求者(Object Requestor)、對(duì)象提供者(Object)和對(duì)象請(qǐng)求代理(Object Request Broker,ORB)組成。 在對(duì)象請(qǐng)求代理范型中,進(jìn)程向?qū)ο笳?qǐng)求代理發(fā)出請(qǐng)求,對(duì)象請(qǐng)求代理將請(qǐng)求轉(zhuǎn)發(fā)給能提供預(yù)期服務(wù)的適當(dāng)對(duì)象。 對(duì)象請(qǐng)求代理范型與RMI范型非常相似。兩者的主要區(qū)別在于,對(duì)象請(qǐng)求代理范型多了一個(gè)對(duì)象請(qǐng)求代理,對(duì)象請(qǐng)求代理充當(dāng)中間件角色,作為對(duì)象請(qǐng)求者的應(yīng)用程序可訪問(wèn)多個(gè)遠(yuǎn)程(或本地)對(duì)象。對(duì)象代理還可以作為異構(gòu)對(duì)象之間的協(xié)調(diào)者,允許由不同API實(shí)現(xiàn)的對(duì)象及運(yùn)行于不同平臺(tái)上的對(duì)象進(jìn)行交互。
9. 網(wǎng)絡(luò)服務(wù) 網(wǎng)絡(luò)服務(wù)范型由服務(wù)請(qǐng)求者、服務(wù)提供者(對(duì)象)和目錄服務(wù)三者組成。 網(wǎng)絡(luò)服務(wù)范型的工作原理為:服務(wù)提供者將自身注冊(cè)到網(wǎng)絡(luò)上的目錄服務(wù)器; 當(dāng)服務(wù)請(qǐng)求者(進(jìn)程)需訪問(wèn)服務(wù)時(shí),則在運(yùn)行時(shí)與目錄服務(wù)器聯(lián)系; 然后,如果請(qǐng)求的服務(wù)可用,則目錄服務(wù)器將向目錄服務(wù)進(jìn)程提供一個(gè)有關(guān)該服務(wù)的引用; 最后,進(jìn)程利用該引用來(lái)與所需的服務(wù)進(jìn)行交互。
網(wǎng)絡(luò)服務(wù)范型本質(zhì)上是對(duì)遠(yuǎn)程方法調(diào)用范型的擴(kuò)展,區(qū)別在于服務(wù)對(duì)象在全局目錄服務(wù)中注冊(cè),允許聯(lián)邦網(wǎng)絡(luò)中的服務(wù)請(qǐng)求者查詢和訪問(wèn)這些服務(wù)。 在理想情況下,可以采用全局惟一標(biāo)志符注冊(cè)和訪問(wèn)服務(wù),在這種情況下,范型將提供額外的一種抽象:位置透明性。 位置透明性允許軟件開(kāi)發(fā)者在訪問(wèn)對(duì)象或服務(wù)時(shí),無(wú)需知道對(duì)象或服務(wù)所在的具體位置。 一個(gè)網(wǎng)絡(luò)服務(wù)的應(yīng)用系統(tǒng)實(shí)例——WebXml,提供很多實(shí)用web服務(wù)
10. 移動(dòng)代理范型 · A mobile agent is a transportable program or object. · In this model, an agent is launched from an originating host. · The agent travels from host to host according to an itinerary(路線) that it carries. · At each stop, the agent accesses the necessary resources or services, and performs the necessary tasks to accomplish its mission.
· The paradigm offers the abstraction for a transportable program or object. · In place of message exchanges, data is carried by the program/object as the program is transported among the participants. (代替消息交換,傳遞數(shù)據(jù)和程序) · Commercial packages which support the mobile agent paradigm include: IBM’s Aglet system. http://www.trl.ibm.com/aglets/ 11. 云服務(wù)范型
12. IaaS IaaS在技術(shù)是通過(guò)創(chuàng)建虛擬的計(jì)算、存儲(chǔ)中心,使得其能夠把計(jì)算單元、存儲(chǔ)器、I/O設(shè)備、帶寬等計(jì)算機(jī)基礎(chǔ)設(shè)施,集中起來(lái)成為一個(gè)虛擬的資源池來(lái)對(duì)外提供服務(wù)。 通過(guò)虛擬化技術(shù),解決了資源靈活調(diào)度,提高資源利用率
13. PaaS PaaS是通過(guò)互聯(lián)網(wǎng)以服務(wù)的形式把計(jì)算環(huán)境、開(kāi)發(fā)環(huán)境等平臺(tái)提供給用戶使用的一種范型。
14. SaaS SaaS是Software as a Service的縮寫(xiě),即軟件即服務(wù)。 是通過(guò)互聯(lián)網(wǎng)以服務(wù)的形式,把軟件及應(yīng)用程序按需提供給用戶使用的一種范型。
云計(jì)算的關(guān)鍵技術(shù)概述 Overview Core Technologies of Cloud Computing 一.IaaS Amazon亞馬遜網(wǎng)絡(luò)書(shū)店 Amazon研發(fā)了彈性計(jì)算云EC2(Elastic Computing Cloud)和簡(jiǎn)單存儲(chǔ)服務(wù)S3(Simple Storage Service)為企業(yè)提供計(jì)算和存儲(chǔ)服務(wù)。 ·誕生兩年時(shí)間,Amazon上的注冊(cè)開(kāi)發(fā)人員就多達(dá)44萬(wàn)人,其中包括為數(shù)眾多的企業(yè)級(jí)用戶。 虛擬服務(wù)器:Amazon EC2 -Small (Default) $0.085 per hour(L) -$0.12 per hour(W) -All Data Transfer $0.15 per GB · 儲(chǔ)存服務(wù):Amazon S3 -$0.15 per GB –first 50 TB / month of storage used -$0.15 per GB –all data transfer in -$0.01 per 1,000 PUT, COPY, POST, or LIST requests · 觀念:Paying for What You Use 每個(gè)服務(wù)器租用1小時(shí)為0.1美元 應(yīng)用案例:紐約時(shí)報(bào) ·使用亞馬遜云計(jì)算服務(wù)在不到24個(gè)小時(shí)的時(shí)間里處理了1100萬(wàn)篇文章 ·累計(jì)花費(fèi)240美元 ·如果用自己的服務(wù)器,需要數(shù)月和多得多的費(fèi)用
二. Google谷歌 Google搜索引擎建立在分布在30多個(gè)站點(diǎn)、超過(guò)200萬(wàn)臺(tái)服務(wù)器構(gòu)成的云計(jì)算設(shè)施的支撐之上,這些設(shè)施的數(shù)量正在迅猛增長(zhǎng)。 ·Google的一系列成功應(yīng)用,包括Google地球、地圖、Gmail、Docs等也同樣使用了這些基礎(chǔ)設(shè)施。 ·目前,Google已經(jīng)允許第三方在Google的云計(jì)算中通過(guò)Google App Engine運(yùn)行大型并行應(yīng)用程序。 ·Hadoop模仿了Google的實(shí)現(xiàn)機(jī)制。
Google的Dalles(達(dá)爾斯)數(shù)據(jù)中心 位于俄勒岡州的波特蘭以東約80英里,旁邊是哥倫比亞河,河上有座大壩——Dalles大壩,大壩為數(shù)據(jù)中心提供便宜的電力。數(shù)據(jù)中心有2座4層樓高的冷卻塔 3個(gè)超大機(jī)房,每個(gè)機(jī)房有45個(gè)集裝箱,每個(gè)集裝箱可以放置1160臺(tái)服務(wù)器,故Dalles數(shù)據(jù)中心可以存放約15萬(wàn)臺(tái)服務(wù)器
Google App Engine (GAE) ·讓開(kāi)發(fā)者可自行建立網(wǎng)絡(luò)應(yīng)用程序于Google 平臺(tái)之上。 ·提供: -500MB of storage -up to 5 million page views a month -10 applications per developer account 限制: -程序設(shè)計(jì)語(yǔ)言只能用Python 或Java · 計(jì)費(fèi)標(biāo)準(zhǔn): –連出頻寬$0.12 美元/GB, 連入頻寬$0.10 美元/GB –CPU 時(shí)間$0.10 美元/時(shí) –儲(chǔ)存的數(shù)據(jù)$0.15 美元/GB-每月 –電子郵件收件者$0.0001 美元/每個(gè)收件者 Google 在一些會(huì)議分享他們的三大關(guān)鍵技術(shù) · Google shared their design of web-search engine –SOSP 2003 : –“The Google File System” –http://labs.google.com/papers/gfs.html –OSDI 2004 : –“MapReduce : Simplifed Data Processing on Large Cluster” –http://labs.google.com/papers/mapreduce.html –OSDI 2006 : –“Bigtable: A Distributed Storage System for Structured Data” –http://labs.google.com/papers/bigtable-osdi06.pdf
IBM ·IBM在2007年11月推出了“改變游戲規(guī)則”的“藍(lán)云”計(jì)算平臺(tái),為客戶帶來(lái)即買(mǎi)即用的云計(jì)算平臺(tái)。 ·IBM正在與17個(gè)歐洲組織合作開(kāi)展名為RESERVOIR云計(jì)算項(xiàng)目,以“無(wú)障礙的資源和服務(wù)虛擬化”為口號(hào)。歐盟提供了1.7億歐元作為部分資金。 ·2008年8月,IBM宣布將投資約4億美元用于其設(shè)在北卡羅來(lái)納州和日本東京的云計(jì)算數(shù)據(jù)中心改造。IBM計(jì)劃在2009年在10個(gè)國(guó)家投資3億美元建13個(gè)云計(jì)算中心。
Microsoft 1.云計(jì)算 云計(jì)算是一種商業(yè)計(jì)算模型。它將計(jì)算任務(wù)分布在大量計(jì)算機(jī)構(gòu)成的資源池上,使各種應(yīng)用系統(tǒng)能夠根據(jù)需要獲取計(jì)算力、存儲(chǔ)空間和信息服務(wù)。 云計(jì)算將計(jì)算變成了大眾用得上和用得起的“水和電” 2.云計(jì)算的特點(diǎn) 超大規(guī)模 虛擬化 高可靠性 通用性 高可擴(kuò)展性 按需服務(wù) 極其廉價(jià) 3. National Definition of Cloud Computing 美國(guó)國(guó)家標(biāo)準(zhǔn)局NIST給云端運(yùn)算所下的定義
5 Characteristics五大基礎(chǔ)特征 1. On-demand self-service .隨需自助服務(wù) 2. Broad network access 隨時(shí)隨地用任何網(wǎng)絡(luò)裝置存取 3. Resource pooling 多人共享資源池 4. Rapid elasticity 快速重新布署靈活度 5. Measured Service 可被監(jiān)控與量測(cè)的服務(wù) 4 Deployment Models 四個(gè)布署模型 ①混合云 Hybrid Cloud 私有云動(dòng)態(tài)根據(jù)計(jì)算需求調(diào)用公云端的資源 Dynamic Resource Provisioning between public and private cloud
②私有云 Private Cloud 以大型企業(yè)為主要客戶 Enterprise is key market ③ 公用云 Public Cloud 主要客戶為中小企業(yè) Target Market is S.M.B. ④ 社群云 Community Cloud 學(xué)術(shù)為主 Academia 3 Service Models 三個(gè)服務(wù)模式 ①IaaS Infrastructure as a Service 架構(gòu)即服務(wù) ②PaaS Platform as a Service 平臺(tái)即服務(wù) ③SaaS Software as a Service 軟件即服務(wù)
深入解析虛擬化技術(shù) Deep Dive into Virtualization Technologies
虛擬化:去耦合 虛擬化是將底層物理設(shè)備與上層操作系統(tǒng)、軟件分離的一種去耦合技術(shù) 虛擬化的目標(biāo)是實(shí)現(xiàn)IT資源利用效率和靈活性的最大化
Part 3 :深入解析云大量資料分析技術(shù) Deep Dive into Data Science Technologies
并行計(jì)算的基礎(chǔ) 1.摩爾定律 –集成電路芯片上所集成的電路的數(shù)目,每隔18個(gè)月就翻一番,同時(shí)性能也提升一倍 –經(jīng)驗(yàn)總結(jié),12個(gè)月-18個(gè)月-24個(gè)月 Gordon Moore
2. “免費(fèi)的性能大餐”? –Andy giveth, and Bill taketh away –軟件算法、數(shù)據(jù)結(jié)構(gòu)似乎不再重要,因?yàn)樘幚砥餍阅懿粩嗵嵘?/span> 免費(fèi)的午餐已經(jīng)結(jié)束??! Intel Microsoft
3. 摩爾定律正在走向終結(jié)… –單芯片容納晶體管的增加,對(duì)制造工藝提出要求 –CPU制造18nm技術(shù),電子泄漏問(wèn)題 –CPU主頻已達(dá)3GHz時(shí)代,難以繼續(xù)提高 ·散熱問(wèn)題(發(fā)熱太大,且難以驅(qū)散) ·功耗太高 未來(lái)的發(fā)展:多核 4. 在多核時(shí)代生存,必須考慮并發(fā)問(wèn)題 ·不存在解決多核編程問(wèn)題的銀彈,不存在可以簡(jiǎn)單地將并發(fā)編程問(wèn)題化解掉的工具,開(kāi)發(fā)高性能的并行程序必須要求開(kāi)發(fā)者從根本上改變其編程方法 ·從某種意義上來(lái)說(shuō),這不僅僅是要改變50年來(lái)順序程序設(shè)計(jì)的工藝傳統(tǒng),而且是要改變數(shù)百萬(wàn)年來(lái)人類(lèi)順序化思考問(wèn)題的習(xí)慣 串行編程 –早期的計(jì)算里,程序一般是被串行執(zhí)行的 –程序是指令的序列,在單處理器的機(jī)器里,程序從開(kāi)始到結(jié)束,這些指令一條接一條的執(zhí)行 ·并行編程 –一道處理可以被劃分為幾部分,然后它們可以并發(fā)地執(zhí)行 –各部分的指令分別在不同的CPU上同時(shí)運(yùn)行,這些CPU可以存在于單臺(tái)機(jī)器中,也可以存在于多臺(tái)機(jī)器上,它們通過(guò)連接起來(lái)共同運(yùn)作
5. 什么樣的問(wèn)題適合并行計(jì)算? –如果有大量結(jié)構(gòu)一致的數(shù)據(jù)要處理,且數(shù)據(jù)可以分解成相同大小的部分,那我們就可以設(shè)法使這道處理變成并行
為什么需要MapReduce 1.Google擁有海量數(shù)據(jù),并且需要快速處理 對(duì)爬蟲(chóng)獲取的網(wǎng)頁(yè)進(jìn)行倒排索引 計(jì)算網(wǎng)站的PageRank 分析搜索趨勢(shì)(Google Trends) 計(jì)算網(wǎng)頁(yè)的訪問(wèn)量 找出一個(gè)詞語(yǔ)在Google搜索目錄中出現(xiàn)的次數(shù);一系列網(wǎng)頁(yè)中特定詞語(yǔ)出現(xiàn)的頻率;鏈接到某個(gè)特定網(wǎng)站的所有網(wǎng)站數(shù)量
2. 計(jì)算問(wèn)題簡(jiǎn)單,但求解困難 –待處理數(shù)據(jù)量巨大(PB級(jí)),只有分布在成百上千個(gè)節(jié)點(diǎn)上并行計(jì)算才能在可接受的時(shí)間內(nèi)完成 –如何進(jìn)行并行分布式計(jì)算? –如何分發(fā)待處理數(shù)據(jù)? –如何處理分布式計(jì)算中的錯(cuò)誤? 簡(jiǎn)單的問(wèn)題,計(jì)算并不簡(jiǎn)單! 3.Google MapReduce架構(gòu)設(shè)計(jì)師 Jeffery Dean設(shè)計(jì)一個(gè)新的抽象模型,使我們只要執(zhí)行的簡(jiǎn)單計(jì)算,而將并行化、容錯(cuò)、數(shù)據(jù)分布、負(fù)載均衡的等雜亂細(xì)節(jié)放在一個(gè)庫(kù)里,使并行編程時(shí)不必關(guān)心它們,這就是MapReduce 4. 一個(gè)軟件架構(gòu),是一種處理海量數(shù)據(jù)的并行編程模式 ·用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運(yùn)算 ·MapReduce實(shí)現(xiàn)了Map和Reduce兩個(gè)功能 –Map把一個(gè)函數(shù)應(yīng)用于集合中的所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集 –Reduce對(duì)結(jié)果集進(jìn)行分類(lèi)和歸納 –Map()和Reduce() 兩個(gè)函數(shù)可能會(huì)并行運(yùn)行,即使不是在同一的系統(tǒng)的同一時(shí)刻
MapReduce 一個(gè)軟件架構(gòu),是一種處理海量數(shù)據(jù)的并行編程模式 ·用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運(yùn)算 ·MapReduce實(shí)現(xiàn)了Map和Reduce兩個(gè)功能 –Map把一個(gè)函數(shù)應(yīng)用于集合中的所有成員,然后返回一個(gè)基于這個(gè)處理的結(jié)果集 –Reduce對(duì)結(jié)果集進(jìn)行分類(lèi)和歸納 –Map()和Reduce() 兩個(gè)函數(shù)可能會(huì)并行運(yùn)行,即使不是在同一的系統(tǒng)的同一時(shí)刻
2004年MapReduce運(yùn)行了2.9萬(wàn)個(gè)工作任務(wù),2007年已有220萬(wàn)個(gè)工作由MapReduce來(lái)完成用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運(yùn)算 ·MapReduce對(duì)于一個(gè)工作的平均運(yùn)行響應(yīng)時(shí)間從634秒下降到了395秒,MapReduce任務(wù)的數(shù)據(jù)產(chǎn)出量從193 上升到了14018 terabytes ·在任何一天,Google運(yùn)行有大約10萬(wàn)個(gè)MapReduce工作任務(wù);每項(xiàng)任務(wù)大約會(huì)占用4百臺(tái)服務(wù)器,時(shí)間大約是5到10分鐘 ·假設(shè)服務(wù)器只完成MapReduce工作,每臺(tái)服務(wù)器一次只完成一項(xiàng)任務(wù),那么大約要耗時(shí)24小時(shí), 如果這些工作任務(wù)每個(gè)耗時(shí)5分鐘,這意味著MapReduce任務(wù)要占用大約13.9萬(wàn)臺(tái)服務(wù)器。 如果耗時(shí)7.5分鐘,那么需要的服務(wù)器數(shù)量增加到20.8萬(wàn)臺(tái);如果需要10分鐘,服務(wù)器的數(shù)量增加至27.8萬(wàn)臺(tái)
文件存儲(chǔ)位置 源文件:GFS Map處理結(jié)果:本地存儲(chǔ) Reduce處理結(jié)果:GFS 日志:GFS
Google MapReduce計(jì)算架構(gòu)有什么問(wèn)題? MapReduce的容錯(cuò) Worker故障 –Master 周期性的ping每個(gè)worker。如果master在一個(gè)確定的時(shí)間段內(nèi)沒(méi)有收到worker返回的信息,那么它將把這個(gè)worker標(biāo)記成失效 –重新執(zhí)行該節(jié)點(diǎn)上已經(jīng)執(zhí)行或尚未執(zhí)行的Map任務(wù) –重新執(zhí)行該節(jié)點(diǎn)上未完成的Reduce任務(wù),已完成的不再執(zhí)行 ·Master故障 –定期寫(xiě)入檢查點(diǎn)數(shù)據(jù) –從檢查點(diǎn)恢復(fù) 實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn) 實(shí)踐證明,MapReduce是出色的分布式計(jì)算模型 –Google宣布,其對(duì)分布于1000臺(tái)計(jì)算機(jī)上的1TB數(shù)據(jù)進(jìn)行排序僅僅需要68s –對(duì)4000臺(tái)計(jì)算機(jī)上的1PB數(shù)據(jù)進(jìn)行排序處理僅需要6小時(shí)2分鐘(每次測(cè)試至少會(huì)損壞1塊硬盤(pán)) –在08年1月份,Google MapReduce平均每天的數(shù)據(jù)處理量是20PB,相當(dāng)于美國(guó)國(guó)會(huì)圖書(shū)館當(dāng)年5月份存檔網(wǎng)絡(luò)數(shù)據(jù)的240 Building PaaS with Open Source 用自由軟件打造PaaS云端服務(wù) 1.應(yīng)用軟件Application Social Computing, Enterprise, ISV,… eyeOS, Nutch, ICAS, X-RIME, ... 2. 程序語(yǔ)言Programming Web 2.0界面, Mashups, Workflows, … Hadoop (MapReduce),Sector/Sphere, AppScale 3. 控制管理Control Qos Neqotiation, Ddmission Control, Pricing, SLA Management, Metering… OpenNebula, Enomaly,Eucalyptus , OpenQRM, ... 4. 虛擬化Virtualization VM, VM management and Deployment Xen, KVM, VirtualBox,QEMU, OpenVZ, ... 5. 硬件設(shè)施Hardware Infrastructure: Computer, Storage, Network Hadoop http://hadoop. Hadoop 是Apache Top Level 開(kāi)發(fā)項(xiàng)目 Hadoop is Apache Top Level Project 目前主要由Yahoo! 資助、開(kāi)發(fā)與運(yùn)用 Major sponsor is Yahoo! 創(chuàng)始者是Doug Cutting ,參考Google Filesystem Developed by Doug Cutting, Reference from Google Filesystem 以Java 開(kāi)發(fā),提供HDFS 與MapReduce API 。 Written by Java, it provides HDFS and MapReduce API 2006 年使用在Yahoo 內(nèi)部服務(wù)中 Used in Yahoo since year 2006 已布署于上千個(gè)節(jié)點(diǎn)。 It had been deploy to 4000+ nodes in Yahoo 處理Petabyte 等級(jí)資料量。 Design to process dataset inPetabyte
Facebook、Last.fm、Joost are also powered by Hadoop What is Hadoop? 用一句話解釋Hadoop是什么?? Hadoop is a software platform that lets one easily write and run applications that process vast amounts of data. Hadoop是一個(gè)讓使用者簡(jiǎn)易撰寫(xiě)并執(zhí)行處理海量數(shù)據(jù)應(yīng)用程序的軟件平臺(tái)。 也可以想象成一個(gè)處理海量數(shù)據(jù)的生產(chǎn)線,只須學(xué)會(huì)定義Map跟Reduce工作站該做哪些事情。 Two Key Elements of Operating System 操作系統(tǒng)兩大關(guān)鍵組成元素 Scheduler程序調(diào)度 File System文件系統(tǒng)
Distributed Operating System of Hadoop Hadoop建構(gòu)成一個(gè)分布式操作系統(tǒng)
Different Roles of Hadoop Architecture Hadoop軟件架構(gòu)中的不同角色
Two Key Roles of HDFS HDFS軟件架構(gòu)的兩種關(guān)鍵角色 名稱節(jié)點(diǎn)NameNode ·Master ·管理HDFS的名稱空間 ·控制對(duì)文件的讀/寫(xiě) ·配置副本策略 ·對(duì)名稱空間作檢查及紀(jì)錄 ·只能有一個(gè) 數(shù)據(jù)節(jié)點(diǎn)DataNode ·Workers ·執(zhí)行讀/寫(xiě)動(dòng)作 ·執(zhí)行Namenode的 副本策略 ·可多個(gè)
Two Key Roles of Job Scheduler 程序調(diào)度的兩種關(guān)鍵角色
MapReduce is suitable to .... MapReduce合適用于.... 大規(guī)模數(shù)據(jù)集 ·Large Data Set · 可拆解,并行化 ·Parallelization Text tokenization Indexing and Search Data mining machine learning |
|