版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、云計算原理與實踐Principles and Practice of Cloud Computing第1頁Outline2.1 分布式計算概述2.2 分布式計算理論基礎2.3 分布式系統(tǒng)概述2.4 分布式系統(tǒng)進階2.5 經典分布式系統(tǒng)Data ScienceStatisticsMachine LearningDomain expertiseMathematicsData engineering第2頁2.1 分布式計算概述2.1.1 基本概念2.1.2 分布式計算原理第3頁2.1.1 基本概念(1)集中式計算集中式計算完全依賴于一臺大型中心計算機處理能力,這臺中心計算機稱為主機(Host或mai
2、nframe),與中心計算機相連終端設備含有各不相同非常低計算能力。實際上大多數(shù)終端完全不含有處理能力,僅作為輸入輸出設備使用。(2)分布式計算 與集中式計算相反,分布式計算中,多個經過網絡互聯(lián)計算機都含有一定計算能力,它們之間相互傳遞數(shù)據,實現(xiàn)信息共享,協(xié)作共同完成一個處理任務。 第4頁中科院定義中國科學院對分布式計算有一個定義: 分布式計算就是在兩個或多個軟件相互共享信息,這些軟件既能夠在同一臺計算機上運行,也能夠在經過網絡連接起來多臺計算機上運行。第5頁分布式計算比起其它算法含有以下幾個優(yōu)點。 稀有資源能夠共享; 經過分布式計算能夠在多臺計算機上平衡計算負載; 能夠把程序放在最適合運行它
3、計算機上。第6頁2.1.2 分布式計算原理分布式計算就是將計算任務分攤到大量計算節(jié)點上,一起完成海量計算任務。而分布式計算原理和并行計算類似,就是將一個復雜龐大計算任務適當劃分為一個個小任務,任務并行執(zhí)行,只不過分布式計算會將這些任務分配到不一樣計算節(jié)點上,每個計算節(jié)點只需要完成自己計算任務即可,能夠有效分擔海量計算任務。而每個計算節(jié)點也能夠并行處理本身任務,愈加充分利用機器CPU資源。最終再將每個節(jié)點計算結果匯總,得到最終計算結果。第7頁分布式計算普通分為以下幾步:1設計分布式計算模型首先要要求分布式系統(tǒng)計算模型。計算模型決定了系統(tǒng)中各個組件應該怎樣運行,組件之間應該怎樣進行消息通信,組件和
4、節(jié)點應該怎樣管理等。2分布式任務分配分布式算法不一樣于普通算法。普通算法通常是按部就班,一步接一步完成任務。而分布式計算中計算任務是分攤到各個節(jié)點上。該算法著重處理是能否分配任務,或怎樣分配任務問題。3編寫并執(zhí)行分布式程序使用特定分布式計算框架與計算模型,將分布式算法轉化為實現(xiàn),并盡可能確保整個集群高效運行,難點:(1)計算任務劃分(2)多節(jié)點之間通信方式第8頁2.2 分布式計算理論基礎2.2.1 ACID 標準2.2.2 CAP理論2.2.3 BASE理論2.2.4 最終一致性2.2.5 一致性散列第9頁2.2.1 ACID標準ACID是數(shù)據庫事務正常執(zhí)行四個標準,分別指原子性、一致性、獨立
5、性及持久性。第10頁2.2.1 ACID標準1A(Atomicity)原子性原子性很輕易了解,也就是說事務里全部操作要么全部做完,要么都不做,事務成功條件是事務里全部操作都成功,只要有一個操作失敗,整個事務就失敗,需要回滾。比如銀行轉賬,從A賬戶轉100元至B賬戶,分為兩個步驟:從A賬戶取100元;存入100元至B賬戶。這兩步要么一起完成,要么一起不完成,假如只完成第一步,第二步失敗,錢會莫名其妙少了100元。第11頁2.2.1 ACID標準2C(Consistency)一致性一致性也比較輕易了解,也就是說數(shù)據庫要一直處于一致狀態(tài),事務運行不會改變數(shù)據庫原本一致性約束。比如現(xiàn)有完整性約束a +
6、 b = 10,假如一個事務改變了a,那么必須得改變b,使得事務結束后依然滿足a + b = 10,不然事務失敗。第12頁2.2.1 ACID標準3I(Isolation)獨立性所謂獨立性是指并發(fā)事務之間不會相互影響,假如一個事務要訪問數(shù)據正在被另外一個事務修改,只要另外一個事務未提交,它所訪問數(shù)據就不受未提交事務影響。比如交易是從A賬戶轉100元至B賬戶,在這個交易還未完成情況下,假如此時B查詢自己賬戶,是看不到新增加100元。第13頁2.2.1 ACID標準4D(Durability)持久性持久性是指一旦事務提交后,它所做修改將會永久保留在數(shù)據庫上,即使出現(xiàn)宕機也不會丟失。這些標準處理了數(shù)
7、據一致性、系統(tǒng)可靠性等關鍵問題,為關系數(shù)據庫技術成熟以及在不一樣領域大規(guī)模應用創(chuàng)造了必要條件。第14頁2.2.2 CAP理論1CAP理論定義7月,加州大學伯克利分校埃里克布魯爾(Eric Brewer)教授在ACM PODC會議上提出CAP猜測。2年后,麻省理工學院塞思吉爾伯符(Seth Gilbert)和南希林奇(Nancy Lynch)從理論上證實了CAP。之后,CAP理論正式成為分布式計算領域公認定理。 一個分布式系統(tǒng)最多只能同時滿足一致性(Consistency)、可用性(Availability)和分區(qū)容錯性(Partition tolerance)這三項中兩項,如圖2.1所表示。第
8、15頁一致性一致性指“All nodes see the same data at the same time”,即更新操作成功并返回客戶端完成后,全部節(jié)點在同一時間數(shù)據完全一致。對于一致性,能夠分為從客戶端和服務端兩個不一樣視角來看。 從客戶端來看,一致性主要指多并發(fā)訪問時更新過數(shù)據怎樣獲取問題。 從服務端來看,則是怎樣將更新復制分布到整個系統(tǒng),以確保數(shù)據最終一致性問題。第16頁 可用性可用性是指“Reads and writes always succeed”,即服務一直可用,而且是在正常響應時間內。對于一個可用性分布式系統(tǒng),每一個非故障節(jié)點必須對每一個請求作出響應。也就是該系統(tǒng)使用任何算
9、法必須最終終止。當同時要求分區(qū)容錯性時,這是一個很強定義:即使是嚴重網絡錯誤,每個請求也必須終止。好可用性主要是指系統(tǒng)能夠很好地為用戶服務,不出現(xiàn)用戶操作失敗或者訪問超時等用戶體驗不好情況。通常情況下可用性和分布式數(shù)據冗余、負載均衡等有著很大關聯(lián)。第17頁 分區(qū)容錯性 分區(qū)容錯性指“The system continues to operate despite arbitrary message loss or failure of part of the system”,也就是指分布式系統(tǒng)在碰到某節(jié)點或網絡分區(qū)故障時候,依然能夠對外提供滿足一致性和可用性服務。分區(qū)容錯性和擴展性緊密相關。在分
10、布式應用中,可能因為一些分布式原因造成系統(tǒng)無法正常運轉。好分區(qū)容錯性要求應用即使是一個分布式系統(tǒng),但看上去卻好像是一個能夠運轉正常整體。比如現(xiàn)在分布式系統(tǒng)中有某一個或者幾個機器宕掉了,其它剩下機器還能夠正常運轉滿足系統(tǒng)需求,或者是機器之間有網絡異常,將分布式系統(tǒng)分隔為獨立幾個部分,各個部分還能維持分布式系統(tǒng)運作,這么就含有好分區(qū)容錯性。第18頁2CAP理論闡述與證實圖2.2 CAP基本場景 第19頁圖2.3 分布式系統(tǒng)正常運轉流程第20頁圖2.4 斷開N1和N2之間網絡第21頁3CAP權衡經過CAP理論,知道無法同時滿足一致性、可用性和分區(qū)容錯性這三個特征,那應該怎樣取舍呢?(1)CA wit
11、hout P:假如不要求P(不允許分區(qū)),則C(強一致性)和A(可用性)是能夠確保。但其實分區(qū)一直會存在,所以CA系統(tǒng)更多是允許分區(qū)后各子系統(tǒng)依然保持CA。(2)CP without A:假如不要求A(可用),相當于每個請求都需要在Server之間強一致,而P(分區(qū))會造成同時時間無限延長,如此CP也是能夠確保。很多傳統(tǒng)數(shù)據庫分布式事務都屬于這種模式。(3)AP without C:要高可用并允許分區(qū),則需放棄一致性。一旦分區(qū)發(fā)生,節(jié)點之間可能會失去聯(lián)絡,為了高可用,每個節(jié)點只能用當?shù)財?shù)據提供服務,而這么會造成全局數(shù)據不一致性。現(xiàn)在眾多NoSQL都屬于這類。第22頁2.2.3 BASE理論丹普
12、里切特(Dan Pritchett)在對大規(guī)模分布式系統(tǒng)實踐總結過程中,提出了BASE理論,BASE理論是對CAP理論延伸,關鍵思想是即使無法做到強一致性(Strong Consistency,CAP一致性就是強一致性),但應用能夠采取適合方式到達最終一致性(Eventual Consistency)。BASE是指基本可用(Basically Available)、軟狀態(tài)(Soft State)、最終一致性(Eventual Consistency)。第23頁1基本可用基本可用是指分布式系統(tǒng)在出現(xiàn)故障時候,允許損失部分可用性,即確保關鍵可用。電商大促時,為了應對訪問量激增,部分用戶可能會被引導
13、到降級頁面,服務層也可能只提供降級服務。這就是損失部分可用性表達。第24頁2軟狀態(tài)軟狀態(tài)是指允許系統(tǒng)存在中間狀態(tài),而該中間狀態(tài)不會影響系統(tǒng)整體可用性。分布式存放中普通一份數(shù)據最少會有三個副本,允許不一樣節(jié)點間副本同時延時就是軟狀態(tài)表達。比如MySQL replication異步復制就是這種表達。第25頁3最終一致性最終一致性是指系統(tǒng)中全部數(shù)據副本經過一定時間后,最終能夠到達一致狀態(tài)。弱一致性和強一致性相反,最終一致性是弱一致性一個特殊情況。BASE和ACID區(qū)分與聯(lián)絡是什么呢?ACID是傳統(tǒng)數(shù)據庫慣用設計理念,追求強一致性模型。BASE支持是大型分布式系統(tǒng),提出經過犧牲強一致性取得高可用性。A
14、CID和BASE代表了兩種截然相反設計哲學。在分布式系統(tǒng)設計場景中,系統(tǒng)組件對一致性要求是不一樣,所以ACID和BASE又會結合使用。第26頁2.2.4 最終一致性下面以上面場景來描述下不一樣程度一致性。強一致性(即時一致性):假如A先寫入了一個值到存放系統(tǒng),存放系統(tǒng)確保后續(xù)A、B、C讀取操作都將返回最新值。弱一致性:假如A先寫入了一個值到存放系統(tǒng),存放系統(tǒng)不能確保后續(xù)A、B、C讀取操作能讀取到最新值。此種情況下有一個“時間窗口”概念,它特指從A寫入值,到后續(xù)操作A、B、C讀取到最新值這一段時間?!皶r間窗口”類似時空穿梭門,不過穿梭門是能夠穿越到過去,而一致性窗口只能穿越到未來,方法很簡單,就
15、是“等會兒”。最終一致性:是弱一致性一個特例。假如A首先“寫”了一個值到存放系統(tǒng),存放系統(tǒng)確保假如在A、B、C后續(xù)讀取之前沒有其它寫操作更新一樣值話,最終全部讀取操作都會讀取到A寫入最新值。此種情況下,假如沒有失敗發(fā)生話,“不一致性窗口”大小依賴于以下幾個原因:交互延遲,系統(tǒng)負載,以及復制技術中復本個數(shù)。最終一致性方面最知名系統(tǒng)能夠說是DNS系統(tǒng),當更新一個域名IP以后,依據配置策略以及緩存控制策略不一樣,最終全部客戶都會看到最新值。第27頁2.2.4 最終一致性還有一些最終一致性變體以下。 Causal consistency(因果一致性):假如Process A通知Process B它已經
16、更新了數(shù)據,那么Process B后續(xù)讀取操作則讀取A寫入最新值,而與A沒有因果關系C則能夠最終一致性。 Read-your-writes consistency:假如Process A寫入了最新值,那么Process A后續(xù)操作都會讀取到最新值。不過其它用戶可能要過一會才能夠看到。 Session consistency:此種一致性要求客戶端和存放系統(tǒng)交互整個會話階段確保Read-your- writes consistency。Hibernatesession提供一致性確保就屬于此種一致性。 Monotonic read consistency:此種一致性要求假如Process A已經讀取
17、了對象某個值,那么后續(xù)操作將不會讀取到更早值。 Monotonic write consistency:此種一致性確保系統(tǒng)會序列化執(zhí)行一個Process中全部寫操作。第28頁2.2.5 一致性散列1基本概念一致性散列算法(Consistent Hashing)最早在論文Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web中被提出。簡單來說,一致性散列將整個散列值空間組織成一個虛擬圓環(huán)。假設某散列函數(shù)H值空間為02321(即散
18、列值是一個32位無符號整形),整個散列空間環(huán)如圖所表示。第29頁2容錯性和擴展性(1)容錯性現(xiàn)假設Node C不幸宕機,能夠看到此時對象A、B、D不會受到影響,只有C對象被重定位到Node D。一般來說,在一致性散列算法中,假如一臺服務器不可用,則受影響數(shù)據僅僅是此服務器到其環(huán)空間中前一臺服務器(即沿著逆時針方向行走碰到第一臺服務器)之間數(shù)據,其他不會受到影響,如圖所表示。第30頁2容錯性和擴展性(2)擴展性假如在系統(tǒng)中增加一臺服務器Node X,如圖所表示。此時對象A、B、D不受影響,只有對象C需要重定位到新Node X。一般來說,在一致性散列算法中,假如增加一臺服務器,則受影響數(shù)據僅僅是新
19、服務器到其環(huán)空間中前一臺服務器(即沿著逆時針方向行走碰到第一臺服務器)之間數(shù)據,其他數(shù)據也不會受到影響。第31頁2容錯性和擴展性(3)虛擬節(jié)點一致性散列算法在服務節(jié)點太少時,輕易因為節(jié)點分布不均勻而造成數(shù)據傾斜問題。比如系統(tǒng)中只有兩臺服務器,其環(huán)分布如圖所表示。第32頁2.3 分布式系統(tǒng)概述2.3.1 分布式系統(tǒng)基礎知識2.3.2 分布式系統(tǒng)特征2.3.3 分布式存放系統(tǒng)實例:Apache Hadoop第33頁2.3.1 分布式系統(tǒng)基礎知識大數(shù)據技術需求是推進分布式系統(tǒng)發(fā)展一大動力。大數(shù)據存放技術演變最初源于互聯(lián)網企業(yè)大規(guī)模分布式存放系統(tǒng)。與傳統(tǒng)高端服務器、高端存放器和高端處理器不一樣是,互聯(lián)
20、網企業(yè)分布式存放系統(tǒng)由數(shù)量眾多、低成本和高性價比普通PC服務器經過網絡連接而成?;ヂ?lián)網業(yè)務發(fā)展很快,而且重視成本,這就使得存放系統(tǒng)不能依靠傳統(tǒng)縱向擴展方式,即先買小型機,不夠時再買中型機,甚至大型機?;ヂ?lián)網后端分布式系統(tǒng)要求支持橫向擴展,即經過增加普通PC服務器來提升系統(tǒng)整體處理能力。普通PC服務器性價比高,故障率也高,需要在軟件層面實現(xiàn)自動容錯,確保數(shù)據一致性。另外,伴隨服務器不停加入,需要能夠在軟件層面實現(xiàn)自動負載均衡,使系統(tǒng)處理能力得到線性擴展。第34頁2.3.2 分布式系統(tǒng)特征喬治庫魯里斯(George Coulouris)是分布式系統(tǒng):概念與設計(Distributed System
21、s:Concepts and Design)一書作者,曾是劍橋大學高級研究員。他曾經對分布式系統(tǒng)下了一個簡單定義:你會知道系統(tǒng)當中某臺計算機瓦解或停頓運行了,不過你軟件卻永遠不會。這句話即使簡單,不過卻道出了分布式系統(tǒng)關鍵特征。分布式系統(tǒng)特征包含容錯性、高可擴展性、開放性、并發(fā)處理能力和透明性。第35頁2.3.3 分布式存放系統(tǒng)實例:Apache HadoopHadoop是由Apache基金會開發(fā)分布式存放與計算框架。用戶不需要了解底層分布式計算原理就能夠輕松開發(fā)出分布式計算程序,能夠充分利用集群中閑置計算資源,將集群真正威力調動起來。Hadoop由兩個主要模塊組成。一個是Hadoop分布式文
22、件系統(tǒng)(Hadoop Distributed File System),顧名思義,就是一個分布式文件系統(tǒng),能夠將文件數(shù)據分布式地存放在集群中不一樣節(jié)點上。另一個是MapReduce系統(tǒng),是一個針對大量數(shù)據分布式計算系統(tǒng)。第36頁圖2.13 Hadoop關鍵組成第37頁1關于Apache HadoopHadoop思路來自谷歌提出MapReduce分布式計算框架。谷歌MapReduce框架可以把一個應用程序分解為許多并行計算指令,跨越大量計算節(jié)點運行非常巨大數(shù)據集。而HadoopMapReduce則是對谷歌MapReduce開源實現(xiàn)。其次其分布式文件系統(tǒng)則是谷歌GFS開源實現(xiàn)。Hadoop原本是A
23、pache Nutch中一個子項目。后來Apache將MapReduce模塊與Nutch Distributed File System(NDFS)單獨抽離出來成為一個頂級項目。Hadoop已經成為目前世界上最流行分布式計算框架之一,Apache也建立了不少與Hadoop相關項目,如HBase、Cassandra、Avro、Hive、Mahout等項目。第38頁2HDFS分布式文件系統(tǒng)Hadoop分布式文件系統(tǒng)(HDFS)是一個主從式分布式文件系統(tǒng),是GFS一個開源實現(xiàn)。HDFS能夠利用大量廉價存放器組成份布式存放集群,取代昂貴集中式磁盤存放陣列。而HDFS集群由一個NameNode和多個Da
24、taNode組成,除此之外還有用于熱備份Secondary NameNode,預防集群出現(xiàn)單點故障。第39頁2HDFS分布式文件系統(tǒng)(1)NameNodeNameNode是整個集群管理者。它并不存放數(shù)據本身,而負責存放文件系統(tǒng)元數(shù)據。它負責管理文件系統(tǒng)名稱空間,并控制外部客戶端對文件系統(tǒng)訪問。NameNode決定怎樣將文件內容映射到DataNode數(shù)據塊上。另外,實際數(shù)據傳輸并不會經過NameNode,而會讓對應DataNode接收實際數(shù)據,并處理分布式存放系統(tǒng)負載均衡問題。整個文件系統(tǒng)只有一個NameNode,所以很顯著集群可能會出現(xiàn)單點故障,這點需要利用Secondary NameNode
25、來處理問題。第40頁2HDFS分布式文件系統(tǒng)(2)Secondary NameNodeSecondary NameNode是NameNode備份節(jié)點,HDFS會將NameNode數(shù)據實時備份到Secondary NameNode上,當NameNode宕機需要重啟時,則能夠利用Secondary NameNode中數(shù)據加緊NameNode重啟恢復速度。第41頁2HDFS分布式文件系統(tǒng)(3)DataNodeDataNode是實際數(shù)據存放節(jié)點,負責對應NameNode創(chuàng)建、刪除和復制塊命令。NameNode會讀取來自DataNode心跳信息,以此判斷DataNode是否存活。同一份數(shù)據會以多份副本存
26、放在不一樣DataNode上,一旦某一個DataNode宕機,NameNode會馬上采取伎倆來處理問題。第42頁2HDFS分布式文件系統(tǒng)(4)MapReduce模型MapReduce既是Hadoop中模塊,也是一個計算模型。用戶需要自己將算法劃分成Map和Reduce兩個階段。首先將數(shù)據劃分為小塊數(shù)據,將數(shù)據分配到不一樣計算節(jié)點Map任務中計算,然后將計算結果匯總到Reduce節(jié)點中進行合并,得出最終止果。MapReduce系統(tǒng)也是主從式計算系統(tǒng)。在使用YARN后,每個集群有一個Resource-Manager,用于管理整個集群。集群中每個計算節(jié)點都有一個NodeManager,負責管理某個節(jié)
27、點容器并監(jiān)視其資源使用。每個應用程序由一個MRAppMaster進行管理。第43頁3Apache Hadoop特征(1)高可靠性:Apache Hadoop可以可靠地將數(shù)據存儲到節(jié)點上。(2)高可擴展性:Apache Hadoop存儲和計算節(jié)點可以快速擴展,并自動進行負載均衡。(3)高效性:一方面Apache Hadoop會自動在各個節(jié)點之間動態(tài)調動數(shù)據,保證每個節(jié)點存儲均衡,其次讀取數(shù)據時我們可以從不一樣節(jié)點并行讀取,提高數(shù)據讀取速度。(4)高容錯性:Apache Hadoop會將數(shù)據冗余存儲在不一樣節(jié)點上,保證數(shù)據容錯性,計算任務失敗時也會自動重新分配任務。(5)低成本:Apache Ha
28、doop是開源軟件,可以節(jié)省商業(yè)軟件購買成本。同時,Apache Hadoop可以用廉價節(jié)點組成集群取代昂貴超級計算機,從而可以節(jié)省硬件成本。第44頁2.4 分布式系統(tǒng)進階2.4.1 分布式存放系統(tǒng)2.4.2 分布式計算系統(tǒng)2.4.3 分布式資源管理系統(tǒng)第45頁2.4.1 分布式存放系統(tǒng)分布式存放系統(tǒng)大致可分為5個子方向:結構化存放、非結構化存放、半結構化存放、In-memory 存放及NewSQL。除了這5個子方向之外,分布式存放系統(tǒng)還有一系列理論、算法、技術作為支撐,比如 Paxos、CAP理論、一致性散列、時鐘技術、2PC、3PC等。第46頁1結構化存放結構化存放歷史非常古老,經典場景就
29、是事務處理系統(tǒng)或者關系型數(shù)據庫(RDBMS)。傳統(tǒng)結構化存放都是從單機做起,比如大家耳熟能詳MySQL。MySQL成長史就是互聯(lián)網成長史。除了MySQL之外,PostgreSQL也是近年來勢頭非常強勁一個RDBMS。傳統(tǒng)結構化存放系統(tǒng)強調以下內容。結構化數(shù)據(比如關系表);強一致性(比如銀行系統(tǒng),電商系統(tǒng)等場景);隨機訪問(索引、增刪查改、SQL)。第47頁2非結構化存放與結構化存放不一樣是,非結構化存放強調是高可擴展性,經典系統(tǒng)就是分布式文件系統(tǒng)。分布式文件系統(tǒng)也是一個很老研究話題,比如20世紀70年代Xerox Alto,80年代NFS、AFS,90年代xFS等。然而,這些早期分布式文件系
30、統(tǒng)只是起到了網絡磁盤作用,其最大問題就是不支持容錯和錯誤恢復。而Google在SOSP會議上推出GFS(Google File System)則走出了里程碑一步,其開源實現(xiàn)對應為HDFS。 第48頁3半結構化存放半結構化存放提出是為了處理結非結構化存放系統(tǒng)隨機訪問性能差問題。我們通常會聽到一些流行名詞,比如NoSQL、Key-Value Store,包含對象存放等。這些都屬于半結構化存放研究領域,其中以NoSQL發(fā)展勢頭最為強勁。NoSQL系統(tǒng)現(xiàn)有分布式文件系統(tǒng)所含有可擴展性,又有結構化存放系統(tǒng)隨機訪問能力(比如隨機操作),系統(tǒng)在設計時通常選擇簡單鍵值(K-V)進行存放,拋棄了傳統(tǒng)RDBMS里
31、復雜SQL查詢及ACID事務。第49頁4In-memory存放伴隨業(yè)務并發(fā)越來越高,存放系統(tǒng)對低延遲要求也越來越高。同時因為摩爾定律以及內存價格不停下降,基于內存存放系統(tǒng)也開始普及。顧名思義,In-memory存放就是將數(shù)據存放在內存中,從而取得讀寫高性能。比較有名系統(tǒng)包含Memcached和Redis。這些基于K-V鍵值系統(tǒng)主要目標是為基于磁盤存放系統(tǒng)做緩存。還有一些偏向于內存計算系統(tǒng),比如Distributed shared memory、RamCloud、Tachyon(Alluxio)項目等。第50頁5NewSQL前面介紹結構化存放時提到,單機RDBMS系統(tǒng)在可擴展性上面臨著巨大挑戰(zhàn),
32、然而NoSQL不能很好支持關系模型。那有沒有一個系統(tǒng)能兼?zhèn)銻DBMS特征(比如,完整SQL支持、ACID事務支持),又能像NoSQL系統(tǒng)那樣含有強大可擴展能力呢?Google在OSDI會議上發(fā)表Spanner,以及年在SIGMOD會議上發(fā)表F1,讓業(yè)界第一次看到了關系模型和NoSQL在超大規(guī)模數(shù)據中心上融合可能性。不過因為這些系統(tǒng)大都過于復雜,沒有工業(yè)界大企業(yè)支持還是極難做出來。第51頁2.4.2 分布式計算系統(tǒng)分布式計算和并行計算一樣嗎?能夠這么認為: 傳統(tǒng)并行計算要求:投入更多機器,數(shù)據大小不變,計算速度更加快。 分布式計算要求:投入更多機器,能處理更大數(shù)據。第52頁1傳統(tǒng)基于消息系統(tǒng)這類
33、系統(tǒng)里比較有代表性就是MPI(Message Passing Interface)。當前比較流行兩個MPI實現(xiàn)是MPICH2和OpenMPI。MPI這個框架非常靈活,對程序結構幾乎沒有太多約束,以至于人們有時把MPI稱為一組接口API,而不是系統(tǒng)框架。MPI除了提供消息傳遞接口之外,其框架還實現(xiàn)了資源管理和分配,以及調度功效。除此之外,MPI在高性能計算里也被廣泛使用,通常能夠和 Infiniband 這么高速網絡無縫結合。第53頁2MapReduce家族系統(tǒng)這一類系統(tǒng)又稱作Dataflow系統(tǒng),其中以Hadoop MapReduce和Spark為代表。其實在學術界有很多類似系統(tǒng),比如Drya
34、d、Twister等。這一類系統(tǒng)特點是將計算抽象成為高層操作,比如像Map、Reduce、Filter這么函數(shù)式算子,將算子組合成有向無環(huán)圖DAG,然后由后端調度引擎進行并行化調度。其中,MapReduce系統(tǒng)屬于比較簡單DAG,只有Map和reduce兩層節(jié)點。MapReduce這么系統(tǒng)之所以能夠擴展到超大規(guī)模集群上運行,就是因為其完備容錯機制。在Hadoop小區(qū)還有很多基于MapReduce框架衍生產品,比如Hive(一個并行數(shù)據庫OLAP)、Pig(交互式數(shù)據操作)等。第54頁3圖計算系統(tǒng)圖計算系統(tǒng)是分布式計算另一個分支,這些系統(tǒng)都是把計算過程抽象成圖,然后在不一樣節(jié)點分布式執(zhí)行,比如P
35、ageRank這么任務,很適適用圖計算系統(tǒng)來表示。大數(shù)據圖是無法使用單臺機器進行處理,假如對大圖數(shù)據進行并行處理,對于每一個頂點之間都是連通圖來講,難以分割成若干完全獨立子圖進行獨立并行處理。即使能夠分割,也見面臨并行機器協(xié)同處理,以及將最終處理結果進行合并等一系列問題。這需要圖數(shù)據處理系統(tǒng)選取適當圖分割以及圖計算模型來迎接挑戰(zhàn)并處理問題。第55頁4基于狀態(tài)系統(tǒng)這一類系統(tǒng)主要包含在OSDI會議上推出Piccolo,以及后明年在NIPS會議上 Google推出開源機器學習系統(tǒng)DistBelief,再到后來被機器學習領域廣泛應用參數(shù)服務器(Parameter Server)架構。第56頁5實時流處
36、理系統(tǒng)實時流處理系統(tǒng)是為高效實時地處理流式數(shù)據而提供服務,更關注數(shù)據處理實時性,能夠愈加緊速地為決議提供支持。流處理是由復雜事件處理(CEP)發(fā)展而來,流處理模式包含兩種:連續(xù)查詢處理模式、可擴展數(shù)據流模式。第57頁2.4.3 分布式資源管理系統(tǒng) 從支持離線處理MapReduce,到支持在線處理Storm,從迭代式計算框架Spark到流式處理框架S4,各種框架誕生于不一樣企業(yè)或者試驗室,它們各有所長,各自處理了某一類應用問題。而在大部分互聯(lián)網企業(yè)中,這幾個框架可能都會采取,比如對于搜索引擎企業(yè),可能技術方案以下:網頁建索引采取MapReduce框架,自然語言處理/數(shù)據挖掘采取Spark(網頁P
37、ageRank計算、聚類分類算法等),對性能要求很高數(shù)據挖掘算法用MPI等。考慮到資源利用率、運維成本、數(shù)據共享等原因,企業(yè)普通希望將全部這些框架布署到一個公共集群中,讓它們共享集群資源,并對資源進行統(tǒng)一使用,這么,便誕生了資源統(tǒng)一管理與調度平臺,經典代表是Mesos和YARN。第58頁資源統(tǒng)一管理和調度平臺含有以下特點:1支持各種計算框架2擴展性3容錯性4高資源利用率5細粒度資源分配第59頁2.5 經典分布式系統(tǒng)2.5.1 網格系統(tǒng)2.5.2 P2P系統(tǒng)2.5.3 透明計算2.5.4 區(qū)塊鏈系統(tǒng)第60頁2.5.1 網格系統(tǒng)網格是一個能夠將多組織擁有和管理計算機、網絡、數(shù)據庫和科學儀器綜合協(xié)同
38、使用基礎設施。網格應用程序大多包括需要跨越組織界限可安全共享大規(guī)模數(shù)據和/或計算資源。這使網格應用程序管理和布署成為一項復雜任務。在混雜網格環(huán)境中,網格中間件為用戶提供了無縫計算能力和統(tǒng)一訪問資源能力。當前,世界范圍內已經發(fā)展有數(shù)個工具包和系統(tǒng),其中大部分是學術研究項目標結果。第61頁1. 網格概念Globus定義網格為:一個能夠整合合作使用由多家組織所擁有和管理高端計算機、網絡、數(shù)據庫、試驗設備基礎設施。由Gridbus提出一個基于效能網格定義:網格是一類并行、分布系統(tǒng),能夠在運行時動態(tài)分享、選擇、聚合地理散布自治資源,依據它們可用性、能力、性能、代價以及用戶對服務質量需求。 第62頁2.
39、網格組成第63頁3Globus工具包Globus是一個研究網格環(huán)境中互操作中間件技術,為科學和工程上網格計算應用程序提供基本支撐環(huán)境。它定義了構建計算網格一組基本服務和功效,包含安全、資源管理、通信、目錄管理等基本服務,被許多應用網格項目采取。第64頁2.5.2 P2P系統(tǒng) 對等網絡系統(tǒng)(Peer-to-Peer),簡稱P2P系統(tǒng),即媒體及公眾所稱“點對點系統(tǒng)”,是一個應用在對等者(Peer)之間分配任務和工作負載分布式應用架構系統(tǒng)。對等網絡思想是:網絡全部參加者共享他們所擁有一部分硬件資源,包含處理器資源、存放資源和網絡資源等,這些共享資源能夠經過網絡被其它對等者直接訪問并為之提供服務和內容。第65頁P2P系統(tǒng)性質(1)高度分散化(2)自組織性(3)多管理域第66頁P2P系統(tǒng)特點(1)布署低門檻(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 眩暈護理查房中醫(yī)治療
- 物業(yè)公司管理規(guī)章制度
- 停工大檢修靜設備及工業(yè)管道施工組織設計
- 膽石癥的微創(chuàng)治療
- 綠道規(guī)劃修編
- 安徽省-2023年-社區(qū)網格員-上半年筆試真題卷
- 社會實踐活動班任總結
- 主辦會計的主要職責模版(3篇)
- 2024年文明美德伴我行演講稿(2篇)
- 2024年全體辦公室人員會議上的講話例文(6篇)
- 心衰合并胸腔積液的護理Ppt
- 廉潔風險防控手冊(醫(yī)院)
- 酒精戒斷綜合征護理查房課件
- 中國古代陶瓷鑒賞
- 計算機應用與人工智能基礎項目9 人工智能
- 編譯原理考試題及答案匯總
- 人教版九年級化學上冊第六單元課題3-二氧化碳和一氧化碳說課稿
- 中國成人患者腸外腸內營養(yǎng)臨床應用指南(2023版)
- 物業(yè)管理應急響應能力提升及案例分析
- 水產養(yǎng)殖學專業(yè)大學生職業(yè)生涯規(guī)劃書
- 森林防火應對工作預案
評論
0/150
提交評論