《大數(shù)據(jù)通識(shí)教程》 課件 第9、10章 大數(shù)據(jù)處理與存儲(chǔ)、大數(shù)據(jù)與云計(jì)算_第1頁(yè)
《大數(shù)據(jù)通識(shí)教程》 課件 第9、10章 大數(shù)據(jù)處理與存儲(chǔ)、大數(shù)據(jù)與云計(jì)算_第2頁(yè)
《大數(shù)據(jù)通識(shí)教程》 課件 第9、10章 大數(shù)據(jù)處理與存儲(chǔ)、大數(shù)據(jù)與云計(jì)算_第3頁(yè)
《大數(shù)據(jù)通識(shí)教程》 課件 第9、10章 大數(shù)據(jù)處理與存儲(chǔ)、大數(shù)據(jù)與云計(jì)算_第4頁(yè)
《大數(shù)據(jù)通識(shí)教程》 課件 第9、10章 大數(shù)據(jù)處理與存儲(chǔ)、大數(shù)據(jù)與云計(jì)算_第5頁(yè)
已閱讀5頁(yè),還剩147頁(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)介

數(shù)字文明與數(shù)字治理大數(shù)據(jù)通識(shí)教程第9章楊武劍周蘇主編大數(shù)據(jù)處理與存儲(chǔ)01開源技術(shù)商業(yè)支援02Hadoop基礎(chǔ)03分布式處理04NoSQL數(shù)據(jù)庫(kù)目錄/CONTENTS05NewSQL數(shù)據(jù)庫(kù)PART01開源技術(shù)商業(yè)支援在大數(shù)據(jù)生態(tài)系統(tǒng)中,基礎(chǔ)設(shè)施主要負(fù)責(zé)數(shù)據(jù)存儲(chǔ)以及處理公司掌握的海量數(shù)據(jù)。應(yīng)用程序則是指人類和計(jì)算機(jī)系統(tǒng)通過(guò)使用這些程序,從數(shù)據(jù)中獲知關(guān)鍵信息。人們使用應(yīng)用程序使數(shù)據(jù)可視化,并由此做出更好的決策;而計(jì)算機(jī)則使用應(yīng)用系統(tǒng)將廣告投放到合適的人群,或者監(jiān)測(cè)信用卡欺詐行為。9.1開源技術(shù)商業(yè)支援最初,IBM、甲骨文以及其他公司都將他們擁有的大型關(guān)系型數(shù)據(jù)庫(kù)商業(yè)化。關(guān)系型數(shù)據(jù)庫(kù)使數(shù)據(jù)存儲(chǔ)在自定義表中,再通過(guò)一個(gè)密碼進(jìn)行訪問(wèn)。例如,一個(gè)雇員可以通過(guò)一個(gè)雇員編號(hào)認(rèn)定,然后該編號(hào)就會(huì)與包含該雇員信息的其他字段相聯(lián)系——她的名字、地址、雇用日期及職位等。這樣的結(jié)構(gòu)化數(shù)據(jù)庫(kù)還是適用的,直到公司不得不解決大量的非結(jié)構(gòu)化數(shù)據(jù)。比如企業(yè)網(wǎng)絡(luò)必須處理海量網(wǎng)頁(yè)以及這些網(wǎng)頁(yè)鏈接之間的關(guān)系,而社交網(wǎng)絡(luò)必須應(yīng)付社交圖譜數(shù)據(jù)。9.1開源技術(shù)商業(yè)支援社交圖譜是社交網(wǎng)站上人與人之間關(guān)系的數(shù)字表示,其上的每個(gè)點(diǎn)末端連接著非結(jié)構(gòu)化數(shù)據(jù),例如照片、信息、個(gè)人檔案等。于是,像騰訊、阿里巴巴、谷歌、臉書以及其他這樣的公司開發(fā)出各自的解決方案,以存儲(chǔ)和處理大量的數(shù)據(jù)。9.1開源技術(shù)商業(yè)支援在大數(shù)據(jù)的演變中,開源軟件起到了很大的作用。如今,越來(lái)越多的企業(yè)將UNIX操作系統(tǒng)的開源版本Linux大規(guī)模地應(yīng)用于商業(yè)用途,并與低成本的服務(wù)器硬件系統(tǒng)相結(jié)合,他們期望獲得企業(yè)級(jí)的商業(yè)支持和保障,以低成本獲得所需要的功能。Oracle(甲骨文)公司的MySQL開源關(guān)系數(shù)據(jù)庫(kù)、Apache開源網(wǎng)絡(luò)服務(wù)器以及PHP開源腳本語(yǔ)言(最初為創(chuàng)建網(wǎng)站開發(fā))搭配起來(lái)的實(shí)用性也推動(dòng)了Linux的普及。大數(shù)據(jù)世界里有許多類似的事物在不斷涌現(xiàn)。9.1開源技術(shù)商業(yè)支援源自谷歌的原始創(chuàng)建技術(shù)的ApacheHadoop是一個(gè)開源分布式計(jì)算平臺(tái),通過(guò)Hadoop分布式文件系統(tǒng)HDFS(HadoopDistributedFileSystem)存儲(chǔ)大量數(shù)據(jù),再通過(guò)名為MapReduce的編程模型將這些數(shù)據(jù)的操作分成小片段。隨后,開發(fā)了一系列圍繞Hadoop的開源技術(shù)。ApacheHive提供數(shù)據(jù)倉(cāng)庫(kù)功能,包括數(shù)據(jù)抽取、轉(zhuǎn)換、裝載(ETL),即將數(shù)據(jù)從各種來(lái)源中抽取出來(lái),再實(shí)行轉(zhuǎn)換以滿足操作需要(包括確保數(shù)據(jù)質(zhì)量),然后裝載到目標(biāo)數(shù)據(jù)庫(kù)。ApacheHBase則提供處于Hadoop頂部的海量結(jié)構(gòu)化表的實(shí)時(shí)讀寫訪問(wèn)功能。同時(shí),ApacheCassandra通過(guò)復(fù)制數(shù)據(jù)來(lái)提供容錯(cuò)數(shù)據(jù)存儲(chǔ)功能。9.1開源技術(shù)商業(yè)支援過(guò)去,開源軟件所擁有的這些功能通常只能從商業(yè)軟件供應(yīng)商處依靠專門的硬件獲取。開源大數(shù)據(jù)技術(shù)正在使數(shù)據(jù)存儲(chǔ)和處理能力——這些本來(lái)只有像谷歌或其他商用運(yùn)營(yíng)商之類的公司才具備的能力,在商用硬件上也得到了應(yīng)用,降低了使用大數(shù)據(jù)的先期投入,并且具備了使大數(shù)據(jù)接觸到更多潛在用戶的潛力。9.1開源技術(shù)商業(yè)支援開源軟件在開始使用時(shí),在個(gè)人使用或有限數(shù)據(jù)的前提下是免費(fèi)的,這使其對(duì)大多數(shù)人頗具吸引力,從而使一些商用運(yùn)營(yíng)商采用免費(fèi)增值的商業(yè)模式參與到競(jìng)爭(zhēng)當(dāng)中。用戶需要在之后為部分或大量數(shù)據(jù)的使用付費(fèi)。久而久之,采用開源技術(shù)的這些企業(yè)也往往需要得到商業(yè)支援,一如當(dāng)初使用Linux碰到的情形。9.1開源技術(shù)商業(yè)支援PART02Hadoop基礎(chǔ)Hadoop是以開源形式發(fā)布的一種對(duì)大規(guī)模數(shù)據(jù)進(jìn)行分布式處理的技術(shù)。特別是處理大數(shù)據(jù)時(shí)代的非結(jié)構(gòu)化數(shù)據(jù)時(shí),Hadoop在性能和成本方面都具有優(yōu)勢(shì),而且通過(guò)橫向擴(kuò)展進(jìn)行擴(kuò)容也相對(duì)容易。Hadoop是最受歡迎的在因特網(wǎng)上對(duì)搜索關(guān)鍵字進(jìn)行內(nèi)容分類的工具,但它也可以解決許多要求極大伸縮性的問(wèn)題。9.2Hadoop基礎(chǔ)Hadoop的基礎(chǔ)是谷歌公司于2004年發(fā)表的一篇關(guān)于大規(guī)模數(shù)據(jù)分布式處理的題為“MapReduce:大集群上的簡(jiǎn)單數(shù)據(jù)處理”的論文。MapReduce指的是一種分布式處理的方法,而Hadoop則是將MapReduce通過(guò)開源方式進(jìn)行實(shí)現(xiàn)的框架的名稱。這是因?yàn)楣雀柙谄湔撐闹泄_的僅限于處理方法,而并沒(méi)有公開程序本身。也就是說(shuō),提到MapReduce,指的只是一種處理方法,而對(duì)其實(shí)現(xiàn)的形式并非只有Hadoop一種。Hadoop則指的是一種基于Apache授權(quán)協(xié)議,以開源形式發(fā)布的軟件程序。9.2.1Hadoop的由來(lái)Hadoop原本是由三大部分組成的,即用于分布式存儲(chǔ)大容量文件的HDFS(HadoopDistributedFileSystem)分布式文件系統(tǒng),用于對(duì)大量數(shù)據(jù)進(jìn)行高效分布式處理的HadoopMapReduce框架,以及超大型數(shù)據(jù)表HBase。這些部分與谷歌的基礎(chǔ)技術(shù)相對(duì)應(yīng)。圖9-2谷歌與開源基礎(chǔ)技術(shù)的對(duì)應(yīng)關(guān)系9.2.1Hadoop的由來(lái)從數(shù)據(jù)處理的角度來(lái)看,HadoopMapReduce是其中最重要的部分。HadoopMapReduce并非用于配備高性能CPU和磁盤的計(jì)算機(jī),而是一種工作在由多臺(tái)通用型計(jì)算機(jī)組成的集群上的,對(duì)大規(guī)模數(shù)據(jù)進(jìn)行分布式處理的框架。9.2.1Hadoop的由來(lái)Hadoop將應(yīng)用程序細(xì)分為在集群中任意節(jié)點(diǎn)上都可執(zhí)行的成百上千個(gè)工作負(fù)載,并分配給多個(gè)節(jié)點(diǎn)來(lái)執(zhí)行。然后,通過(guò)對(duì)各節(jié)點(diǎn)瞬間返回的信息進(jìn)行重組,得出最終的回答。雖然存在其他功能類似的程序,但Hadoop依靠其處理的高速性脫穎而出。最早由HDFS、HadoopMapReduce、HBase這三個(gè)組件所組成的軟件架構(gòu),現(xiàn)在也衍生出了多個(gè)子項(xiàng)目,其范圍也隨之逐步擴(kuò)大。9.2.1Hadoop的由來(lái)企業(yè)里的數(shù)據(jù)分析師和市場(chǎng)營(yíng)銷人員過(guò)去由于成本、處理時(shí)間的限制,而不得不放棄的對(duì)大量非結(jié)構(gòu)化數(shù)據(jù)的處理,只能依賴抽樣數(shù)據(jù)來(lái)進(jìn)行分析?,F(xiàn)在,由于Hadoop集群的規(guī)??梢院苋菀椎?cái)U(kuò)展到PB甚至是EB級(jí)別,因此可以將分析對(duì)象擴(kuò)展到全部數(shù)據(jù)的范圍。而且,由于處理速度比過(guò)去有了飛躍性的提升,現(xiàn)在可以進(jìn)行若干次重復(fù)的分析,也可以用不同的查詢來(lái)進(jìn)行測(cè)試,從而有可能獲得過(guò)去無(wú)法獲得的更有價(jià)值的信息。9.2.2Hadoop的優(yōu)勢(shì)Hadoop是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架。Hadoop假設(shè)計(jì)算元素和存儲(chǔ)會(huì)失敗,因此它維護(hù)多個(gè)工作數(shù)據(jù)副本,確保能夠針對(duì)失敗的節(jié)點(diǎn)重新分布處理。Hadoop是高效的,因?yàn)樗圆⑿械姆绞焦ぷ?,通過(guò)并行處理加快處理速度。Hadoop還是可伸縮的,能夠處理PB級(jí)數(shù)據(jù)。此外,使用Hadoop的成本比較低,適用面廣。9.2.2Hadoop的優(yōu)勢(shì)Hadoop是一個(gè)能夠讓用戶輕松架構(gòu)和使用的分布式計(jì)算平臺(tái)。用戶可以輕松地在Hadoop上開發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。它有以下幾個(gè)優(yōu)點(diǎn):(1)高可靠性。Hadoop按位存儲(chǔ)和處理數(shù)據(jù)。(2)高擴(kuò)展性。Hadoop是在可用的計(jì)算機(jī)集簇間分配數(shù)據(jù)并完成計(jì)算任務(wù)的,這些集簇可以方便地?cái)U(kuò)展到數(shù)以千計(jì)的節(jié)點(diǎn)中。(3)高效性。Hadoop能夠在節(jié)點(diǎn)之間動(dòng)態(tài)地移動(dòng)數(shù)據(jù),并保證各個(gè)節(jié)點(diǎn)的動(dòng)態(tài)平衡,因此處理速度非???。9.2.2Hadoop的優(yōu)勢(shì)(4)高容錯(cuò)性。Hadoop能夠自動(dòng)保存數(shù)據(jù)的多個(gè)副本,并且能夠自動(dòng)將失敗的任務(wù)重新分配。Hadoop帶有用Java語(yǔ)言編寫的框架,其上的應(yīng)用程序也可以使用其他語(yǔ)言編寫,比如C++。9.2.2Hadoop的優(yōu)勢(shì)PART03分布式處理文件系統(tǒng)是在一個(gè)存儲(chǔ)設(shè)備上存儲(chǔ)和組織數(shù)據(jù)的方法,這個(gè)存儲(chǔ)設(shè)備可以是閃存、DVD和硬盤。文件是存儲(chǔ)的原子單位,被文件系統(tǒng)用來(lái)存儲(chǔ)數(shù)據(jù)。一個(gè)文件系統(tǒng)提供了一個(gè)存儲(chǔ)在存儲(chǔ)設(shè)備上的數(shù)據(jù)邏輯視圖,并以樹結(jié)構(gòu)的形式展示了目錄和文件。操作系統(tǒng)采用文件系統(tǒng)為應(yīng)用程序來(lái)存儲(chǔ)和檢索數(shù)據(jù)。每個(gè)操作系統(tǒng)支持一個(gè)或多個(gè)文件系統(tǒng),例如MicrosoftWindows上的NTFS和Linux上的ext。9.3分布式處理分布式系統(tǒng)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng),它具有高度的內(nèi)聚性和透明性,因此網(wǎng)絡(luò)和分布式系統(tǒng)之間的區(qū)別更多的在于高層軟件(特別是操作系統(tǒng)),而不是硬件。內(nèi)聚性是指每一個(gè)數(shù)據(jù)庫(kù)分布節(jié)點(diǎn)高度自治,有本地的數(shù)據(jù)庫(kù)管理系統(tǒng)。透明性是指每一個(gè)數(shù)據(jù)庫(kù)分布節(jié)點(diǎn)對(duì)用戶的應(yīng)用來(lái)說(shuō)都是透明的,看不出是本地還是遠(yuǎn)程。在分布式數(shù)據(jù)庫(kù)系統(tǒng)中,用戶感覺(jué)不到數(shù)據(jù)是分布的,無(wú)須知道關(guān)系是否分割、有無(wú)副本、數(shù)據(jù)存于哪個(gè)站點(diǎn)以及事務(wù)在哪個(gè)站點(diǎn)上執(zhí)行等。9.3.1分布式系統(tǒng)在一個(gè)分布式系統(tǒng)中,一組獨(dú)立的計(jì)算機(jī)展現(xiàn)給用戶的是一個(gè)統(tǒng)一的整體。系統(tǒng)擁有多種通用的物理和邏輯資源,可以動(dòng)態(tài)分配任務(wù),分散的物理和邏輯資源通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)信息交換。系統(tǒng)中存在一個(gè)以全局方式管理計(jì)算機(jī)資源的分布式操作系統(tǒng),通常對(duì)用戶來(lái)說(shuō),分布式系統(tǒng)只有一個(gè)模型,在操作系統(tǒng)之上有一層軟件中間件負(fù)責(zé)實(shí)現(xiàn)這個(gè)模型。例如互聯(lián)網(wǎng)就是一個(gè)典型的分布式系統(tǒng),在互聯(lián)網(wǎng)中,所有的一切看起來(lái)就好像是一個(gè)文檔(Web頁(yè)面)一樣。9.3.1分布式系統(tǒng)在計(jì)算機(jī)網(wǎng)絡(luò)中,這種統(tǒng)一性、模型以及其中的軟件都不存在。用戶看到的是實(shí)際的機(jī)器,計(jì)算機(jī)網(wǎng)絡(luò)并沒(méi)有使這些機(jī)器看起來(lái)是統(tǒng)一的。如果這些機(jī)器有不同的硬件或者不同的操作系統(tǒng),那么,這些差異對(duì)于用戶來(lái)說(shuō)都是完全可見(jiàn)的。如果一個(gè)用戶希望在一臺(tái)遠(yuǎn)程機(jī)器上運(yùn)行一個(gè)程序,那么,他必須登陸到遠(yuǎn)程機(jī)器上,然后在那臺(tái)機(jī)器上運(yùn)行該程序。9.3.1分布式系統(tǒng)分布式系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)的共同點(diǎn)是:多數(shù)分布式系統(tǒng)是建立在計(jì)算機(jī)網(wǎng)絡(luò)之上的,所以分布式系統(tǒng)與計(jì)算機(jī)網(wǎng)絡(luò)在物理結(jié)構(gòu)上是基本相同的。分布式操作系統(tǒng)的設(shè)計(jì)思想和網(wǎng)絡(luò)操作系統(tǒng)是不同的,這決定了它們?cè)诮Y(jié)構(gòu)、工作方式和功能上也不同。網(wǎng)絡(luò)操作系統(tǒng)要求網(wǎng)絡(luò)用戶在使用網(wǎng)絡(luò)資源時(shí)首先必須了解網(wǎng)絡(luò)資源,網(wǎng)絡(luò)用戶必須知道網(wǎng)絡(luò)中各個(gè)計(jì)算機(jī)的功能與配置、軟件資源、網(wǎng)絡(luò)文件結(jié)構(gòu)等情況,在網(wǎng)絡(luò)中如果用戶要讀一個(gè)共享文件時(shí),用戶必須知道這個(gè)文件放在哪一臺(tái)計(jì)算機(jī)的哪一個(gè)目錄下。9.3.1分布式系統(tǒng)分布式操作系統(tǒng)是以全局方式管理系統(tǒng)資源的,它可以為用戶任意調(diào)度網(wǎng)絡(luò)資源,并且調(diào)度過(guò)程是“透明”的。當(dāng)用戶提交一個(gè)作業(yè)時(shí),分布式操作系統(tǒng)能夠根據(jù)需要在系統(tǒng)中選擇最合適的處理器,將用戶的作業(yè)提交到該處理程序,在處理器完成作業(yè)后,將結(jié)果傳給用戶。在這個(gè)過(guò)程中,用戶并不會(huì)意識(shí)到有多個(gè)處理器的存在,這個(gè)系統(tǒng)就像是一個(gè)處理器一樣。9.3.1分布式系統(tǒng)一個(gè)分布式文件系統(tǒng)作為一個(gè)文件系統(tǒng)可以存儲(chǔ)分布在集群的節(jié)點(diǎn)上的大文件。對(duì)于客戶端來(lái)說(shuō),文件似乎在本地上;然而,這只是一個(gè)邏輯視圖,在物理形式上文件分布于整個(gè)集群。這個(gè)本地視圖展示了通過(guò)分布式文件系統(tǒng)存儲(chǔ)并且使文件可以從多個(gè)位置獲得訪問(wèn)。例如Google文件系統(tǒng)(GFS)和Hadoop分布式文件系統(tǒng)(HDFS)。9.3.2分布式文件系統(tǒng)像其他文件系統(tǒng)一樣,分布式文件系統(tǒng)對(duì)所存儲(chǔ)的數(shù)據(jù)是不可知的,因此能夠支持無(wú)模式的數(shù)據(jù)存儲(chǔ)。通常來(lái)講,分布式文件系統(tǒng)存儲(chǔ)設(shè)備通過(guò)復(fù)制數(shù)據(jù)到多個(gè)位置而提供開箱即用的數(shù)據(jù)冗余和高可用性,但并不提供開箱即用的搜索文件內(nèi)容的功能。一個(gè)實(shí)現(xiàn)了分布式文件系統(tǒng)的存儲(chǔ)設(shè)備可以提供簡(jiǎn)單快速的數(shù)據(jù)存儲(chǔ)功能,并能夠存儲(chǔ)大型非關(guān)系型數(shù)據(jù)集,如半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)。盡管對(duì)于并發(fā)控制采用了簡(jiǎn)單的文件鎖機(jī)制,它依然擁有快速的讀/寫能力,從而能夠應(yīng)對(duì)大數(shù)據(jù)的快速特性。9.3.2分布式文件系統(tǒng)對(duì)于包含大量小文件的數(shù)據(jù)集來(lái)說(shuō),分布式文件系統(tǒng)不是一個(gè)很好的選擇,因?yàn)樗斐蛇^(guò)多的磁盤尋址行為,降低了總體數(shù)據(jù)獲取速度。此外,在處理大量較小文件時(shí)也會(huì)產(chǎn)生更多開銷,因?yàn)樵谔幚砻總€(gè)文件時(shí),且在結(jié)果被整個(gè)集群同步之前,處理引擎會(huì)產(chǎn)生一些專用的進(jìn)程。由于這些限制,分布式文件系統(tǒng)更適用于數(shù)量少、空間大、并以連續(xù)方式訪問(wèn)的文件。多個(gè)較小的文件通常被合并成一個(gè)文件以獲得最佳的存儲(chǔ)和處理性能。當(dāng)數(shù)據(jù)必須以流模式獲取而且沒(méi)有隨機(jī)讀寫需求時(shí),會(huì)使分布式文件系統(tǒng)獲得更好的性能。9.3.2分布式文件系統(tǒng)分布式文件系統(tǒng)存儲(chǔ)設(shè)備適用于存儲(chǔ)原始數(shù)據(jù)的大型數(shù)據(jù)集,或者需要?dú)w檔數(shù)據(jù)集時(shí)。另外,分布式文件系統(tǒng)對(duì)需要在相當(dāng)長(zhǎng)的一段時(shí)期內(nèi)在線存儲(chǔ)大量數(shù)據(jù)提供了一個(gè)廉價(jià)的選擇。因?yàn)榧嚎梢苑浅:?jiǎn)單地增加磁盤而不需要將數(shù)據(jù)卸載到像磁帶等離線數(shù)據(jù)存儲(chǔ)空間中。9.3.2分布式文件系統(tǒng)并行數(shù)據(jù)處理就是把一個(gè)規(guī)模較大的任務(wù)分成多個(gè)子任務(wù)同時(shí)進(jìn)行,目的是減少處理的時(shí)間。雖然并行數(shù)據(jù)處理能夠在多個(gè)網(wǎng)絡(luò)機(jī)器上進(jìn)行,但目前來(lái)說(shuō)更為典型的方式是在一臺(tái)機(jī)器上使用多個(gè)處理器或內(nèi)核來(lái)完成。圖9-3任務(wù)被分成子任務(wù),在一臺(tái)機(jī)器的不同處理器上并行執(zhí)行9.3.3并行與分布式數(shù)據(jù)處理分布式數(shù)據(jù)處理與并行數(shù)據(jù)處理非常相似,二者都利用了“分治”的原理。與并行數(shù)據(jù)處理不同的是,分布式數(shù)據(jù)處理通常在幾個(gè)物理上分離的機(jī)器上進(jìn)行,這些機(jī)器通過(guò)網(wǎng)絡(luò)連接構(gòu)成一個(gè)集群。如下圖所示,一個(gè)任務(wù)同樣被分為三個(gè)子任務(wù),但是這些子任務(wù)在三個(gè)不同的機(jī)器上進(jìn)行,這三個(gè)機(jī)器連接到一個(gè)交換機(jī)。

圖9-4分布式數(shù)據(jù)處理舉例9.3.3并行與分布式數(shù)據(jù)處理大數(shù)據(jù)導(dǎo)致了數(shù)據(jù)量的爆發(fā)式增長(zhǎng),傳統(tǒng)的集中式存儲(chǔ)(如NAS或SAN)在容量和性能上都無(wú)法較好地滿足大數(shù)據(jù)的需求。因此,具有優(yōu)秀的可擴(kuò)展能力的分布式存儲(chǔ)成為大數(shù)據(jù)存儲(chǔ)的主流架構(gòu)方式。分布式存儲(chǔ)多采用普通的硬件設(shè)備作為基礎(chǔ)設(shè)施,因此,單位容量的存儲(chǔ)成本也得到大大降低。另外,分布式存儲(chǔ)在性能、維護(hù)性和容災(zāi)性等方面也具有不同程度的優(yōu)勢(shì)。9.3.4分布式存儲(chǔ)分布式存儲(chǔ)系統(tǒng)需要解決的關(guān)鍵技術(shù)問(wèn)題包括諸如可擴(kuò)展性、數(shù)據(jù)冗余、數(shù)據(jù)一致性、全局命名空間、緩存等,從架構(gòu)上來(lái)講,大體上可以將分布式存儲(chǔ)分為C/S(客戶機(jī)/服務(wù)器)架構(gòu)和P2P(點(diǎn)對(duì)點(diǎn))架構(gòu)兩種。當(dāng)然,也有一些分布式存儲(chǔ)中會(huì)同時(shí)存在這兩種架構(gòu)方式。分布式存儲(chǔ)面臨的另一個(gè)問(wèn)題,就是如何組織和管理成員節(jié)點(diǎn),以及如何建立數(shù)據(jù)與節(jié)點(diǎn)之間的映射關(guān)系。成員節(jié)點(diǎn)的動(dòng)態(tài)增加或者離開,在分布式系統(tǒng)中基本上可以算是一種常態(tài)。9.3.4分布式存儲(chǔ)PART04NoSQL數(shù)據(jù)庫(kù)存儲(chǔ)技術(shù)隨著時(shí)間的推移持續(xù)發(fā)展,把存儲(chǔ)從服務(wù)器內(nèi)部逐漸移動(dòng)到網(wǎng)絡(luò)上。當(dāng)今對(duì)融合式架構(gòu)的推動(dòng)把計(jì)算、存儲(chǔ)、內(nèi)存和網(wǎng)絡(luò)放入一個(gè)可以統(tǒng)一管理的架構(gòu)中。在這些變化中,大數(shù)據(jù)的存儲(chǔ)需求徹底地改變了自20世紀(jì)80年代末期以來(lái)企業(yè)信息通信技術(shù)所支持的以關(guān)系型數(shù)據(jù)庫(kù)為中心的觀念。其根本原因在于,關(guān)系型技術(shù)不是一個(gè)可以支持大數(shù)據(jù)的容量的可擴(kuò)展的方式。更何況,企業(yè)通常通過(guò)處理半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)獲取有用的價(jià)值,而這些數(shù)據(jù)通常與關(guān)系型方法不兼容。9.4NoSQL數(shù)據(jù)庫(kù)大數(shù)據(jù)促進(jìn)形成了統(tǒng)一的觀念,即存儲(chǔ)的邊界是集群可用的內(nèi)存和磁盤存儲(chǔ)。如果需要更多的存儲(chǔ)空間,橫向可擴(kuò)展性允許集群通過(guò)添加更多節(jié)點(diǎn)來(lái)擴(kuò)展。這個(gè)事實(shí)對(duì)于內(nèi)存與磁盤設(shè)備都成立,尤其重要的是創(chuàng)新的方法能夠通過(guò)內(nèi)存存儲(chǔ)來(lái)提供實(shí)時(shí)分析。甚至批量為主的處理速度都由于越來(lái)越便宜的固態(tài)硬盤而變快了。9.4NoSQL數(shù)據(jù)庫(kù)磁盤存儲(chǔ)通常利用廉價(jià)的硬盤設(shè)備作為長(zhǎng)期存儲(chǔ)的介質(zhì),并可由分布式文件系統(tǒng)或數(shù)據(jù)庫(kù)實(shí)現(xiàn)。圖9-5磁盤存儲(chǔ)可通過(guò)分布式文件系統(tǒng)或數(shù)據(jù)庫(kù)實(shí)現(xiàn)9.4NoSQL數(shù)據(jù)庫(kù)NoSQL數(shù)據(jù)庫(kù)是一個(gè)非關(guān)系型數(shù)據(jù)庫(kù),具有高度的可擴(kuò)展性、容錯(cuò)性,并且專門設(shè)計(jì)用來(lái)存儲(chǔ)半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。NoSQL數(shù)據(jù)庫(kù)通常會(huì)提供一個(gè)能被應(yīng)用程序調(diào)用的基于API的查詢接口。NoSQL數(shù)據(jù)庫(kù)也支持結(jié)構(gòu)化查詢語(yǔ)言(SQL)以外的查詢語(yǔ)言,因?yàn)镾QL是為了查詢存儲(chǔ)在關(guān)系型數(shù)據(jù)庫(kù)中的結(jié)構(gòu)化數(shù)據(jù)而設(shè)計(jì)的。例如,優(yōu)化一個(gè)NoSQL數(shù)據(jù)庫(kù)用來(lái)存儲(chǔ)XML文件通常會(huì)使用XQuery作為查詢語(yǔ)言。9.4NoSQL數(shù)據(jù)庫(kù)同樣,設(shè)計(jì)一個(gè)NoSQL數(shù)據(jù)庫(kù)用來(lái)存儲(chǔ)RDF數(shù)據(jù)將使用SPARQL來(lái)查詢它包含的關(guān)系。不過(guò),還是有一些NoSQL數(shù)據(jù)庫(kù)提供類似于SQL的查詢界面。圖9-6NoSQL數(shù)據(jù)庫(kù)可以提供一個(gè)類似于API或SQL-like的查詢接口9.4NoSQL數(shù)據(jù)庫(kù)下面列舉一些NoSQL存儲(chǔ)設(shè)備與傳統(tǒng)RDBMS不一致的主要特性,但并不是所有的NoSQL存儲(chǔ)設(shè)備都具有這些特性。(1)無(wú)模式的數(shù)據(jù)模型——數(shù)據(jù)可以以它的原始形式存在。(2)橫向擴(kuò)展而不是縱向擴(kuò)展——為了獲得額外的存儲(chǔ)空間,NoSQL可以增加更多的節(jié)點(diǎn),而不是用更好的性能/容量更高的節(jié)點(diǎn)替換現(xiàn)有的節(jié)點(diǎn)。(3)高可用性——NoSQL建立在提供開箱即用的容錯(cuò)性的基于集群的技術(shù)之上。9.4.1主要特征(4)較低的運(yùn)營(yíng)成本——許多NoSQL數(shù)據(jù)庫(kù)建立在開源的平臺(tái)上,不需要支付軟件許可費(fèi)。它們通??梢圆渴鹪谏虡I(yè)硬件上。(5)最終一致性——跨節(jié)點(diǎn)的數(shù)據(jù)讀取可能在寫入后短時(shí)間內(nèi)不一致。但是,最終所有的節(jié)點(diǎn)會(huì)處于一致的狀態(tài)。(6)BASE兼容而不是ACID兼容——BASE兼容性需要數(shù)據(jù)庫(kù)在網(wǎng)絡(luò)或者節(jié)點(diǎn)故障時(shí)保持高可用性,而不要求數(shù)據(jù)庫(kù)在數(shù)據(jù)更新發(fā)生時(shí)保持一致的狀態(tài)。數(shù)據(jù)庫(kù)可以處于不一致狀態(tài)直到最后獲得一致性。9.4.1主要特征(7)API驅(qū)動(dòng)的數(shù)據(jù)訪問(wèn)——數(shù)據(jù)的訪問(wèn)通常支持基于API的查詢,但一些實(shí)現(xiàn)可能也提供類SQL查詢的支持。(8)自動(dòng)分片和復(fù)制——為了支持水平擴(kuò)展提供高可用性,NoSQL存儲(chǔ)設(shè)備自動(dòng)地運(yùn)用分片和復(fù)制技術(shù),數(shù)據(jù)集可以被水平分割然后被復(fù)制到多個(gè)節(jié)點(diǎn)。(9)集成緩存——沒(méi)有必要加入第三方分布式緩存層。9.4.1主要特征(10)分布式查詢支持——NoSQL存儲(chǔ)設(shè)備通過(guò)多重分片來(lái)維持一致性查詢。(11)不同類型設(shè)備同時(shí)使用——NoSQL存儲(chǔ)的使用并沒(méi)有淘汰傳統(tǒng)的RDBMS,支持不同類型的存儲(chǔ)設(shè)備可以同時(shí)使用。即在相同的結(jié)構(gòu)里,可以使用不同類型的存儲(chǔ)技術(shù)以持久化數(shù)據(jù)。這對(duì)于需要結(jié)構(gòu)化也需要半結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)的系統(tǒng)開發(fā)有好處。9.4.1主要特征(12)注重聚集數(shù)據(jù)——不像關(guān)系型數(shù)據(jù)庫(kù)那樣對(duì)處理規(guī)范化數(shù)據(jù)最為高效,NoSQL存儲(chǔ)設(shè)備存儲(chǔ)非規(guī)范化的聚集數(shù)據(jù)(一個(gè)實(shí)體為一個(gè)對(duì)象),所以減少了在不同應(yīng)用對(duì)象和存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)之間進(jìn)行連接和映射操作的需要。但是有一個(gè)例外,圖數(shù)據(jù)存儲(chǔ)設(shè)備不注重聚集數(shù)據(jù)。9.4.1主要特征NoSQL存儲(chǔ)設(shè)備的出現(xiàn)主要?dú)w因于大數(shù)據(jù)數(shù)據(jù)集的容量、速度和多樣性等3V特征。由于NoSQL數(shù)據(jù)庫(kù)能夠像隨著數(shù)據(jù)集的進(jìn)化改變數(shù)據(jù)模型一樣改變模式,基于這個(gè)能力,NoSQL存儲(chǔ)設(shè)備能夠存儲(chǔ)無(wú)模式數(shù)據(jù)和不完整數(shù)據(jù)。換句話說(shuō),NoSQL數(shù)據(jù)庫(kù)支持模式進(jìn)化。9.4.1主要特征如右圖所示,根據(jù)不同存儲(chǔ)數(shù)據(jù)的方式,NoSQL存儲(chǔ)設(shè)備可以被分為四種類型。9.4.1主要特征鍵-值存儲(chǔ)設(shè)備以鍵-值對(duì)的形式存儲(chǔ)數(shù)據(jù),并且運(yùn)行機(jī)制和散列表類似。該表是一個(gè)值列表,其中每個(gè)值由一個(gè)鍵來(lái)標(biāo)識(shí)。值對(duì)數(shù)據(jù)庫(kù)不透明并且通常以BLOB形式存儲(chǔ)。存儲(chǔ)的值可以是任何從傳感器數(shù)據(jù)到視頻數(shù)據(jù)的集合。只能通過(guò)鍵查找值,因?yàn)閿?shù)據(jù)庫(kù)對(duì)所存儲(chǔ)的數(shù)據(jù)集合的細(xì)節(jié)是未知的。不能部分更新,更新操作只能是刪除或者插入。鍵-值存儲(chǔ)設(shè)備通常不含有任何索引,所以寫入非??臁;诤?jiǎn)單的存儲(chǔ)模型,鍵-值存儲(chǔ)設(shè)備高度可擴(kuò)展。由于鍵是檢索數(shù)據(jù)的唯一方式,為了便于檢索,所保存值的類型經(jīng)常被附在鍵之后。123_sensor1就是一個(gè)這樣的例子。9.4.2鍵-值存儲(chǔ)為了使存儲(chǔ)的數(shù)據(jù)具有一些結(jié)構(gòu),大多數(shù)的鍵-值存儲(chǔ)設(shè)備會(huì)提供集合或桶(像表一樣)來(lái)放置鍵-值對(duì)。如下圖所示,一個(gè)集合就可以容納多種數(shù)據(jù)格式。一些實(shí)現(xiàn)方法為了降低存儲(chǔ)空間從而支持壓縮值。但是這樣在讀出期間會(huì)造成延遲,因?yàn)閿?shù)據(jù)在返回之前需要先被解壓。圖9-11數(shù)據(jù)被組織在鍵-值對(duì)中的一個(gè)例子9.4.2鍵-值存儲(chǔ)鍵-值存儲(chǔ)設(shè)備適用于:·需要存儲(chǔ)非結(jié)構(gòu)化數(shù)據(jù)?!ば枰哂懈咝У淖x寫性能?!ぶ悼梢酝耆涉I確定?!ぶ凳遣灰蕾嚻渌档莫?dú)立實(shí)體?!ぶ涤兄喈?dāng)簡(jiǎn)單的結(jié)果或是二進(jìn)制的。·查詢模式簡(jiǎn)單,只包括插入、查找和刪除操作?!ご鎯?chǔ)的值在應(yīng)用層被操作。鍵-值存儲(chǔ)設(shè)備的實(shí)例包括Riak、Redis和AmazonDynamoDB。9.4.2鍵-值存儲(chǔ)文檔存儲(chǔ)設(shè)備也存儲(chǔ)鍵-值對(duì)。但是,與鍵-值存儲(chǔ)設(shè)備不同,存儲(chǔ)的值是可以數(shù)據(jù)庫(kù)查詢的文檔。這些文檔可以具有復(fù)雜的嵌套結(jié)構(gòu),例如發(fā)票。這些文檔可以使用基于文本的編碼方案,如XML或JSON,或者使用二進(jìn)制編碼方案,如BSON(BinaryJSON)進(jìn)行編碼。9.4.3文檔存儲(chǔ)像鍵-值存儲(chǔ)設(shè)備一樣,大多數(shù)文檔存儲(chǔ)設(shè)備也會(huì)提供集合或桶來(lái)放置鍵-值對(duì)。文檔存儲(chǔ)設(shè)備和鍵-值存儲(chǔ)設(shè)備之間的區(qū)別如下:·文檔存儲(chǔ)設(shè)備是值可感知的?!ご鎯?chǔ)的值是自描述的,模式可以從值的結(jié)構(gòu)或從模式的引用推斷出,因?yàn)槲臋n已經(jīng)被包括在值中。·選擇操作可以引用集合值內(nèi)的一個(gè)字段?!みx擇操作可以檢索集合的部分值?!ぶС植糠指拢约系淖蛹梢员桓?。·通常支持用于加速查找的索引。9.4.3文檔存儲(chǔ)每個(gè)文檔都可以有不同的模式,所以,在相同的集合或者桶中可能存儲(chǔ)不同種類的文檔。在最初的插入操作之后,可以加入新的屬性,所以提供了靈活的模式支持。應(yīng)當(dāng)指出,文檔存儲(chǔ)設(shè)備并不局限于存儲(chǔ)像XML文件等以真實(shí)格式存在的文檔,它們也可以用于存儲(chǔ)包含一系列具有平面或嵌套模式的屬性的集合。右圖展示了JSON文件如何以文檔的形式存儲(chǔ)在NoSQL數(shù)據(jù)庫(kù)中。圖9-12JSON文件存儲(chǔ)在文檔存儲(chǔ)設(shè)備中的一個(gè)例子9.4.3文檔存儲(chǔ)文檔存儲(chǔ)設(shè)備適用于:·存儲(chǔ)包含平面或嵌套模式的面向文檔的半結(jié)構(gòu)化數(shù)據(jù)。·模式的進(jìn)化由于文檔結(jié)構(gòu)的未知性或者易變性而成為必然?!?yīng)用需要對(duì)存儲(chǔ)的文檔進(jìn)行部分更新?!ば枰谖臋n的不同屬性上進(jìn)行查找?!ひ孕蛄谢瘜?duì)象的形式存儲(chǔ)應(yīng)用領(lǐng)域中的對(duì)象,例如顧客?!げ樵兡J桨迦?、選擇、更新和刪除操作。文檔存儲(chǔ)設(shè)備的例子包括MongoDB、CouchDB和Terrastore。9.4.3文檔存儲(chǔ)列簇存儲(chǔ)設(shè)備像傳統(tǒng)RDBMS一樣存儲(chǔ)數(shù)據(jù),但是會(huì)將相關(guān)聯(lián)的列聚集在一行中,從而形成列簇。如下圖所示,每一列都可以是一系列相關(guān)聯(lián)的集合,被稱為超列。圖9-13圖中加下劃線的列表示列簇?cái)?shù)據(jù)庫(kù)提供的靈活模式特征,此處每一行可以有不同的列9.4.4列簇存儲(chǔ)每個(gè)超列可包含任意數(shù)量的相關(guān)列,這些列通常作為一個(gè)單元被檢索或更新。每行都包括多個(gè)列簇,并且含有不同的列的集合,所以有靈活的模式支持。每行被行鍵標(biāo)識(shí)。列簇存儲(chǔ)設(shè)備提供快速數(shù)據(jù)訪問(wèn),并帶有隨機(jī)讀寫能力。它們把列簇存儲(chǔ)在不同的物理文件中,這會(huì)提高查詢響應(yīng)速度,因?yàn)橹挥斜徊樵兊牧写夭艜?huì)被搜索到。9.4.4列簇存儲(chǔ)一些列簇存儲(chǔ)設(shè)備支持選擇性地壓縮列簇。不對(duì)一些能夠被搜索到的列簇進(jìn)行壓縮,會(huì)讓查詢速度更快,因?yàn)樵诓檎抑?,那些目?biāo)列不需要被解壓縮。大多數(shù)的實(shí)現(xiàn)支持?jǐn)?shù)據(jù)版本管理,然而有一些支持對(duì)列數(shù)據(jù)指定到期時(shí)間。當(dāng)?shù)狡跁r(shí)間過(guò)了,數(shù)據(jù)會(huì)被自動(dòng)移除。9.4.4列簇存儲(chǔ)列簇存儲(chǔ)設(shè)備適用于:·需要實(shí)時(shí)的隨機(jī)讀寫能力,并且數(shù)據(jù)以已定義的結(jié)構(gòu)存儲(chǔ)?!?shù)據(jù)表示的是表的結(jié)構(gòu),每行包含著大量列,并且存在著相互關(guān)聯(lián)的數(shù)據(jù)形成的嵌套組?!ば枰獙?duì)模式的進(jìn)化提供支持,因?yàn)榱写氐脑黾踊蛘邉h除不需要在系統(tǒng)停機(jī)時(shí)間進(jìn)行?!つ承┳侄未蠖鄶?shù)情況下可以一起訪問(wèn),并且搜索需要利用字段的值。9.4.4列簇存儲(chǔ)·當(dāng)數(shù)據(jù)包含稀疏的行而需要有效地使用存儲(chǔ)空間時(shí),因?yàn)榱写財(cái)?shù)據(jù)庫(kù)只為存在列的行分配存儲(chǔ)空間。如果沒(méi)有列,將不會(huì)分配任何空間。·查詢模式包含插入、選擇、更新和刪除操作。列簇存儲(chǔ)設(shè)備包括Cassandra、HBase和AmazonSimpleDB。9.4.4列簇存儲(chǔ)圖存儲(chǔ)設(shè)備被用于持久化互聯(lián)的實(shí)體。不像其他的NoSQL存儲(chǔ)設(shè)備那樣注重實(shí)體的結(jié)構(gòu),圖存儲(chǔ)設(shè)備更強(qiáng)調(diào)存儲(chǔ)實(shí)體之間的聯(lián)系。

圖9-14圖存儲(chǔ)設(shè)備存儲(chǔ)實(shí)體和它們之間的關(guān)系9.4.5圖存儲(chǔ)存儲(chǔ)的實(shí)體被稱作節(jié)點(diǎn)(注意不要與集群節(jié)點(diǎn)相混淆)也被稱為頂點(diǎn),實(shí)體間的聯(lián)系被稱為邊。按照RDBMS的說(shuō)法,每個(gè)節(jié)點(diǎn)可被認(rèn)為是一行,而邊可表示連接。節(jié)點(diǎn)之間通過(guò)多條邊形成多種類型的鏈路,每個(gè)節(jié)點(diǎn)有如鍵-值對(duì)的屬性數(shù)據(jù),例如顧客可以有ID、姓名和年齡屬性。一個(gè)節(jié)點(diǎn)有多條邊,和在RDBMS中含有多個(gè)外鍵是相類似的,但是,并不是所有的節(jié)點(diǎn)都需要有相同的邊。查詢一般包括根據(jù)節(jié)點(diǎn)屬性或者邊屬性查找互聯(lián)節(jié)點(diǎn),通常被稱為節(jié)點(diǎn)的遍歷。邊可以是單向的或雙向的,指明了節(jié)點(diǎn)遍歷的方向。一般來(lái)講,圖存儲(chǔ)設(shè)備通過(guò)ACID兼容性而支持一致性。9.4.5圖存儲(chǔ)圖存儲(chǔ)設(shè)備的有用程度取決于節(jié)點(diǎn)之間的邊的數(shù)量和類型。邊的數(shù)量越多,類型越復(fù)雜,可以執(zhí)行的查詢的種類就越多。因此,如何全面地捕捉節(jié)點(diǎn)之間存在的不同類型的關(guān)系很重要。這不僅可用于現(xiàn)有的使用場(chǎng)景,也可以用來(lái)對(duì)數(shù)據(jù)進(jìn)行探索性的分析。圖存儲(chǔ)設(shè)備通常允許在不改變數(shù)據(jù)庫(kù)的情況下加入新的節(jié)點(diǎn)類型,這也使得可以在節(jié)點(diǎn)之間定義額外的連接,以新的關(guān)系或者節(jié)點(diǎn)體現(xiàn)在數(shù)據(jù)庫(kù)中。9.4.5圖存儲(chǔ)圖存儲(chǔ)設(shè)備適用于:·需要存儲(chǔ)互聯(lián)的實(shí)體?!ば枰鶕?jù)關(guān)系的類型查詢實(shí)體,而不是實(shí)體的屬性。·查找互聯(lián)的實(shí)體組。·就節(jié)點(diǎn)遍歷距離來(lái)查找實(shí)體之間的距離?!榱藢ふ夷J蕉M(jìn)行的數(shù)據(jù)挖掘。圖存儲(chǔ)設(shè)備的主要例子有Neo4J、InfiniteGraph和OrientDB。9.4.5圖存儲(chǔ)傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)是通過(guò)SQL這種標(biāo)準(zhǔn)語(yǔ)言來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作的,而相對(duì)地,NoSQL數(shù)據(jù)庫(kù)并不使用SQL語(yǔ)言。因此,有時(shí)候人們會(huì)將其誤認(rèn)為是對(duì)使用SQL的現(xiàn)有RDBMS的否定,并將要取代RDBMS,而實(shí)際上卻并非如此。NoSQL數(shù)據(jù)庫(kù)是對(duì)RDBMS所不擅長(zhǎng)的部分進(jìn)行的補(bǔ)充,因此應(yīng)該理解為“NotonlySQL”的意思。NoSQL數(shù)據(jù)庫(kù)和傳統(tǒng)上使用的RDBMS之間的主要區(qū)別見(jiàn)表9-1。9.4.6與RDBMS的主要區(qū)別表9-1RDBMS與NoSQL數(shù)據(jù)庫(kù)的區(qū)別9.4.6與RDBMS的主要區(qū)別(1)數(shù)據(jù)模型與數(shù)據(jù)庫(kù)結(jié)構(gòu)。在RDBMS中,數(shù)據(jù)被歸納為表(Table)的形式,并通過(guò)定義數(shù)據(jù)之間的關(guān)系,來(lái)描述嚴(yán)格的數(shù)據(jù)模型。這種方式需要在理解要輸入數(shù)據(jù)的含義的基礎(chǔ)上,事先對(duì)字段結(jié)構(gòu)做出定義。一旦定義好的數(shù)據(jù)庫(kù)結(jié)構(gòu)就相對(duì)固定了,很難進(jìn)行修改。在NoSQL數(shù)據(jù)庫(kù)中,數(shù)據(jù)是通過(guò)鍵及其對(duì)應(yīng)的值的組合,或者是鍵值對(duì)和追加鍵來(lái)描述的,因此結(jié)構(gòu)非常簡(jiǎn)單,也無(wú)法定義數(shù)據(jù)之間的關(guān)系。其數(shù)據(jù)庫(kù)結(jié)構(gòu)無(wú)需在一開始就固定下來(lái),且隨時(shí)都可以進(jìn)行靈活的修改。9.4.6與RDBMS的主要區(qū)別(2)數(shù)據(jù)一致性。在RDBMS中,由于存在ACID(Atomicity=原子性,Consistency=一致性、Isolation=隔離性、Durability=持久性)原則,因此可以保持嚴(yán)密的數(shù)據(jù)一致性。而NoSQL數(shù)據(jù)庫(kù)并不是遵循ACID這種嚴(yán)格的原則,而是采用結(jié)果上的一致性(Eventualconsistency),即可能存在臨時(shí)的、無(wú)法保持嚴(yán)密一致性的狀態(tài)。到底是用RDBMS還是NoSQL數(shù)據(jù)庫(kù),需要根據(jù)用途來(lái)進(jìn)行選擇,而數(shù)據(jù)一致性這一點(diǎn)尤為重要。9.4.6與RDBMS的主要區(qū)別例如,像銀行賬戶的轉(zhuǎn)入/轉(zhuǎn)出處理,如果不能保證交易處理立即在數(shù)據(jù)庫(kù)中得到體現(xiàn),并嚴(yán)密保持?jǐn)?shù)據(jù)一致性的話,就會(huì)引發(fā)很大的問(wèn)題。相對(duì)地,我們想一想Twitter上增加一個(gè)粉絲的情況。粉絲數(shù)量從1050人變成1051人,但這個(gè)變化即便沒(méi)有即時(shí)反映出來(lái),基本上也不會(huì)引發(fā)什么大問(wèn)題。前者這樣的情況,適合用RDBMS;而后者這樣的情況,則適合用NoSQL數(shù)據(jù)庫(kù)。9.4.6與RDBMS的主要區(qū)別(3)擴(kuò)展性。RDBMS由于重視ACID原則和數(shù)據(jù)的結(jié)構(gòu),因此在數(shù)據(jù)量增加的時(shí)候,基本上是采取購(gòu)買更大的服務(wù)器這樣向上擴(kuò)展的方法來(lái)進(jìn)行擴(kuò)容,而從架構(gòu)方面來(lái)看,是很難進(jìn)行橫向擴(kuò)展的。9.4.6與RDBMS的主要區(qū)別此外,由于數(shù)據(jù)的一致性需要嚴(yán)密的保證,對(duì)性能的影響也十分顯著,如果為了提升性能而進(jìn)行非正則化處理,則又會(huì)降低數(shù)據(jù)庫(kù)的維護(hù)性和操作性。雖然通過(guò)像Oracle的“真正應(yīng)用集群”這樣能夠從多臺(tái)服務(wù)器同時(shí)操作數(shù)據(jù)庫(kù)的架構(gòu),也可以對(duì)RDBMS實(shí)現(xiàn)橫向擴(kuò)展,但從現(xiàn)實(shí)情況來(lái)看,這樣的擴(kuò)展最多到幾倍的程度就已經(jīng)達(dá)到極限了。除此之外還有一種方法,將數(shù)據(jù)庫(kù)的內(nèi)容由多臺(tái)應(yīng)用程序服務(wù)器進(jìn)行分布式緩存,并將緩存配置在RDBMS的前面。9.4.6與RDBMS的主要區(qū)別但在大規(guī)模環(huán)境下,會(huì)發(fā)生數(shù)據(jù)同步延遲、維護(hù)復(fù)雜等問(wèn)題,并不是一個(gè)非常實(shí)用的方法。NoSQL數(shù)據(jù)庫(kù)則具備很容易進(jìn)行橫向擴(kuò)展的特性,對(duì)性能造成的影響也很小。而且,由于它在設(shè)計(jì)上就是以在一般通用型硬件構(gòu)成的集群上工作為前提的,因此在成本方面也具有優(yōu)勢(shì)。9.4.6與RDBMS的主要區(qū)別(4)容錯(cuò)性。RDBMS可以通過(guò)復(fù)制將數(shù)據(jù)在多臺(tái)服務(wù)器上保留副本,從而提高容錯(cuò)性。然而,在發(fā)生數(shù)據(jù)不匹配的情況時(shí),以及想要增加副本時(shí),在維護(hù)上的負(fù)荷和成本都會(huì)提高。NoSQL由于本來(lái)就支持分布式環(huán)境,大多數(shù)NoSQL數(shù)據(jù)庫(kù)都沒(méi)有單一故障點(diǎn),對(duì)故障的應(yīng)對(duì)成本比較低。9.4.6與RDBMS的主要區(qū)別可見(jiàn),NoSQL數(shù)據(jù)庫(kù)具備這些特征:數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單、不需要數(shù)據(jù)庫(kù)結(jié)構(gòu)定義(或者可以靈活變更)、不對(duì)數(shù)據(jù)一致性進(jìn)行嚴(yán)格保證、通過(guò)橫向擴(kuò)展可實(shí)現(xiàn)很高的擴(kuò)展性等。簡(jiǎn)而言之,就是一種以犧牲一定的數(shù)據(jù)一致性為代價(jià),追求靈活性、擴(kuò)展性的數(shù)據(jù)庫(kù)。9.4.6與RDBMS的主要區(qū)別PART05NewSQL數(shù)據(jù)庫(kù)NoSQL存儲(chǔ)設(shè)備是高度可擴(kuò)展的、可用的、容錯(cuò)的,對(duì)于讀寫操作是快速的。但是,它們不提供ACID兼容的RDBMS所表現(xiàn)的事務(wù)和一致性支持。根據(jù)BASE模型,NoSQL存儲(chǔ)設(shè)備提供了最終一致性而不是立即一致性。所以它們?cè)谶_(dá)到最終的一致性狀態(tài)前處于軟狀態(tài),因此并不適用于實(shí)現(xiàn)大規(guī)模事務(wù)系統(tǒng)。9.5NewSQL數(shù)據(jù)庫(kù)進(jìn)一步發(fā)展的NewSQL存儲(chǔ)設(shè)備結(jié)合了RDBMS的ACID特性和NoSQL存儲(chǔ)設(shè)備的可擴(kuò)展性與容錯(cuò)性。它們既保留了高層次結(jié)構(gòu)化查詢語(yǔ)言SQL查詢的方便性,又能提供高性能和高可擴(kuò)展性,而且還能保留傳統(tǒng)的事務(wù)操作的ACID特性。NewSQL數(shù)據(jù)庫(kù)通常支持符合SQL語(yǔ)法的數(shù)據(jù)定義與數(shù)據(jù)操作,對(duì)于數(shù)據(jù)存儲(chǔ)使用邏輯上的關(guān)系數(shù)據(jù)模型。由于NewSQL數(shù)據(jù)庫(kù)對(duì)SQL的支持,與NoSQL存儲(chǔ)設(shè)備相比,它更容易從傳統(tǒng)的RDBMS轉(zhuǎn)化為高度可擴(kuò)展的數(shù)據(jù)庫(kù)。9.5NewSQL數(shù)據(jù)庫(kù)NewSQL系統(tǒng)涉及很多新穎的架構(gòu)設(shè)計(jì),例如,可以將整個(gè)數(shù)據(jù)庫(kù)都在主內(nèi)存中運(yùn)行,從而消除掉數(shù)據(jù)庫(kù)傳統(tǒng)的緩存管理;可以在一個(gè)服務(wù)器上面只運(yùn)行一個(gè)線程,從而去除掉輕量的加鎖阻塞(盡管某些加鎖操作仍然需要,并且影響性能);還可以使用額外的服務(wù)器來(lái)進(jìn)行復(fù)制和失敗恢復(fù)的工作,從而取代昂貴的事務(wù)恢復(fù)操作。9.5NewSQL數(shù)據(jù)庫(kù)NewSQL可以用來(lái)開發(fā)有大量事務(wù)的OLTP系統(tǒng),例如銀行系統(tǒng)。它們也可以用于實(shí)時(shí)分析,如運(yùn)營(yíng)分析,因?yàn)橐恍?shí)現(xiàn)采用了內(nèi)存存儲(chǔ)。NewSQL數(shù)據(jù)庫(kù)的實(shí)例包括Clustrix、NimbusDB、VoltDB、NuoDB和InnoDB。9.5NewSQL數(shù)據(jù)庫(kù)數(shù)字文明與數(shù)字治理大數(shù)據(jù)通識(shí)教程第10章楊武劍周蘇主編大數(shù)據(jù)與云計(jì)算01與數(shù)字化相關(guān)的技術(shù)02云計(jì)算概述03計(jì)算虛擬化04網(wǎng)絡(luò)虛擬化目錄/CONTENTS05存儲(chǔ)虛擬化06云計(jì)算服務(wù)形式06大數(shù)據(jù)與云計(jì)算PART01與數(shù)字化相關(guān)的技術(shù)麥肯錫全球研究院(MGI)為大數(shù)據(jù)給出的定義是:一種規(guī)模大到在獲取、存儲(chǔ)、管理和分析方面大大超出了傳統(tǒng)數(shù)據(jù)庫(kù)軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價(jià)值密度低四大特征。10.1與數(shù)字化相關(guān)的技術(shù)除了大數(shù)據(jù),數(shù)字化所依托的還有如下一些主要技術(shù)。(1)云計(jì)算。是把各種計(jì)算資源集合起來(lái),通過(guò)軟件實(shí)現(xiàn)自動(dòng)化管理,只需要很少的人參與,就能讓資源被快速提供,也就是說(shuō),計(jì)算能力作為一種商品,可以在互聯(lián)網(wǎng)上流通,就像水、電、煤一樣,可以方便地按需取用,且價(jià)格較為低廉。10.1與數(shù)字化相關(guān)的技術(shù)(2)5G。即第五代移動(dòng)通信技術(shù),是4G、3G、2G的延伸,有傳輸速度更快,時(shí)滯更短(接口延時(shí)在1ms左右)、容量更大、系統(tǒng)協(xié)同化和智能化水平提升等特點(diǎn)。主要的應(yīng)用場(chǎng)景如:車聯(lián)網(wǎng)和自動(dòng)駕駛、外科遠(yuǎn)程手術(shù)、VR游戲、物聯(lián)網(wǎng)等場(chǎng)景。10.1與數(shù)字化相關(guān)的技術(shù)(3)工業(yè)互聯(lián)網(wǎng)。本質(zhì)和核心是通過(guò)工業(yè)互聯(lián)網(wǎng)平臺(tái),把設(shè)備、生產(chǎn)線、工廠、供應(yīng)商、產(chǎn)品和客戶緊密地聯(lián)結(jié)整合起來(lái)??梢孕纬煽缭O(shè)備、跨系統(tǒng)、跨廠區(qū)、跨地區(qū)的互聯(lián)互通,從而提高效率,推動(dòng)整個(gè)制造服務(wù)體系化智能化。10.1與數(shù)字化相關(guān)的技術(shù)(4)物聯(lián)網(wǎng)。即“萬(wàn)物相連的互聯(lián)網(wǎng)”,是在互聯(lián)網(wǎng)的基礎(chǔ)上延伸和擴(kuò)展的網(wǎng)絡(luò),是將各種信息傳感設(shè)備與互聯(lián)網(wǎng)結(jié)合起來(lái)形成一個(gè)巨大的網(wǎng)絡(luò),實(shí)現(xiàn)在任何時(shí)間、任何地點(diǎn),人、機(jī)、物的互聯(lián)互通。物聯(lián)網(wǎng)通過(guò)視頻識(shí)別、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,把任何物品和互聯(lián)網(wǎng)相連接,進(jìn)行信息交換和通信,以實(shí)現(xiàn)對(duì)物品的智能識(shí)別、定位、跟蹤、監(jiān)控和管理。10.1與數(shù)字化相關(guān)的技術(shù)(5)區(qū)塊鏈。本質(zhì)是一個(gè)去中心化的數(shù)據(jù)庫(kù),同時(shí)作為比特幣的底層技術(shù),是一串使用密碼學(xué)方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊都包含了一批次比特幣網(wǎng)絡(luò)交易的信息,用于驗(yàn)證其信息的有效性(防偽)和生成下一個(gè)區(qū)塊。區(qū)塊鏈?zhǔn)欠植际綌?shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)傳輸、共識(shí)機(jī)制、加密算法等計(jì)算機(jī)技術(shù)的新型應(yīng)用模式。區(qū)塊鏈的特點(diǎn):去中心化、開放性、獨(dú)立性、安全性、匿名性。10.1與數(shù)字化相關(guān)的技術(shù)(6)人工智能。其主要目標(biāo)是使機(jī)器能夠勝任一些通常需要人類智能才完成的復(fù)雜工作。它是一門跨學(xué)科的科學(xué),如機(jī)器學(xué)習(xí)、計(jì)算機(jī)視覺(jué)等科學(xué)和技術(shù),還涉及心理學(xué)和哲學(xué)等人文學(xué)科。該領(lǐng)域的研究包括機(jī)器人、語(yǔ)言識(shí)別、圖像識(shí)別、自然語(yǔ)言處理和專家系統(tǒng)等。10.1與數(shù)字化相關(guān)的技術(shù)PART02云計(jì)算概述所謂基礎(chǔ)設(shè)施,是指在IT環(huán)境中,為具體應(yīng)用提供計(jì)算、存儲(chǔ)、互聯(lián)、管理等基礎(chǔ)功能的軟硬件系統(tǒng)。在信息技術(shù)發(fā)展的早期,IT基礎(chǔ)設(shè)施往往由一系列昂貴的,經(jīng)過(guò)特殊設(shè)計(jì)的軟硬件設(shè)備組成,存儲(chǔ)容量有限,系統(tǒng)之間也沒(méi)有高效的數(shù)據(jù)交換通道,應(yīng)用軟件直接運(yùn)行在硬件平臺(tái)上。在這種環(huán)境中,用戶不容易、也沒(méi)有必要去區(qū)分哪些部分屬于基礎(chǔ)設(shè)施,哪些部分是應(yīng)用軟件。然而,隨著對(duì)新應(yīng)用的需求不斷涌現(xiàn),IT基礎(chǔ)設(shè)施發(fā)生了翻天覆地的變化。10.2云計(jì)算概述摩爾定律在過(guò)去的幾十年書寫了奇跡。在這奇跡的背后,是越來(lái)越廉價(jià)、越來(lái)越高效的計(jì)算能力。有了強(qiáng)大的計(jì)算能力,人類可以處理更為龐大的數(shù)據(jù),而這又帶來(lái)對(duì)存儲(chǔ)的需求。再之后,就需要把并行計(jì)算的理論搬上臺(tái)面,更大限度地挖掘IT基礎(chǔ)設(shè)施的潛力。于是,網(wǎng)絡(luò)也蓬勃發(fā)展起來(lái)。由于硬件已經(jīng)變得前所未有的復(fù)雜,專門管理硬件資源、為上層應(yīng)用提供運(yùn)行環(huán)境的系統(tǒng)軟件也順應(yīng)歷史潮流,迅速發(fā)展壯大。10.2.1云計(jì)算定義基于大規(guī)模數(shù)據(jù)的系列應(yīng)用正在悄然推動(dòng)著IT基礎(chǔ)設(shè)施的發(fā)展,尤其是大數(shù)據(jù)對(duì)海量、高速存儲(chǔ)的需求。為了對(duì)大規(guī)模數(shù)據(jù)進(jìn)行有效的計(jì)算,必須最大限度地利用計(jì)算和網(wǎng)絡(luò)資源。計(jì)算虛擬化和網(wǎng)絡(luò)虛擬化要對(duì)分布式、異構(gòu)的計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源進(jìn)行有效的管理。10.2.1云計(jì)算定義所謂“云計(jì)算”是一種基于互聯(lián)網(wǎng)的計(jì)算方式,通過(guò)這種方式,共享的軟硬件資源和信息可以按需求提供給計(jì)算機(jī)和其他設(shè)備?;蛘?,云計(jì)算是通過(guò)網(wǎng)絡(luò)“云”將巨大的數(shù)據(jù)計(jì)算處理程序分解成無(wú)數(shù)個(gè)小程序,然后通過(guò)多部服務(wù)器組成的系統(tǒng)進(jìn)行處理和分析這些小程序得到結(jié)果并返回給用戶。云計(jì)算為我們提供了跨地域、高可靠、按需付費(fèi)、所見(jiàn)即所得、快速部署等能力,這些都是長(zhǎng)期以來(lái)IT行業(yè)所追尋的。隨著云計(jì)算的發(fā)展,大數(shù)據(jù)正成為云計(jì)算面臨的一個(gè)重大考驗(yàn)。10.2.1云計(jì)算定義云是網(wǎng)絡(luò)、互聯(lián)網(wǎng)的一種比喻說(shuō)法。過(guò)去在圖中往往用云來(lái)表示電信網(wǎng),后來(lái)也用來(lái)表示互聯(lián)網(wǎng)和底層基礎(chǔ)設(shè)施的抽象。云計(jì)算是繼1980年代大型計(jì)算機(jī)到客戶端-服務(wù)器的大轉(zhuǎn)變之后的又一種巨變。用戶不再需要了解“云”中基礎(chǔ)設(shè)施的細(xì)節(jié),不必具有相應(yīng)的專業(yè)知識(shí),也無(wú)需直接進(jìn)行控制。云計(jì)算描述了一種基于互聯(lián)網(wǎng)的新的IT服務(wù)增加、使用和交付模式,通常涉及通過(guò)互聯(lián)網(wǎng)來(lái)提供動(dòng)態(tài)易擴(kuò)展,而且經(jīng)常是虛擬化的資源,它意味著計(jì)算能力也可作為一種商品通過(guò)互聯(lián)網(wǎng)進(jìn)行流通。10.2.1云計(jì)算定義美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)的定義是:云計(jì)算是一種按使用量付費(fèi)的模式,這種模式提供可用的、便捷的、按需的網(wǎng)絡(luò)訪問(wèn),進(jìn)入可配置的計(jì)算資源共享池(資源包括網(wǎng)絡(luò),服務(wù)器,存儲(chǔ),應(yīng)用軟件,服務(wù)),這些資源能夠被快速提供,只需投入很少的管理工作,或與服務(wù)供應(yīng)商進(jìn)行很少的交互。10.2.1云計(jì)算定義云計(jì)算是分布式計(jì)算、并行計(jì)算、網(wǎng)格計(jì)算、效用計(jì)算、網(wǎng)絡(luò)存儲(chǔ)、虛擬化、負(fù)載均衡等傳統(tǒng)計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。其中,網(wǎng)格計(jì)算是由一群松散耦合的計(jì)算機(jī)組成的一個(gè)超級(jí)虛擬計(jì)算機(jī),常用來(lái)執(zhí)行一些大型任務(wù);效用計(jì)算是IT資源的一種打包和計(jì)費(fèi)方式,比如按照計(jì)算、存儲(chǔ)分別計(jì)量費(fèi)用,像傳統(tǒng)的電力等公共設(shè)施一樣;自主計(jì)算是具有自我管理功能的計(jì)算機(jī)系統(tǒng)。事實(shí)上,許多云計(jì)算部署依賴于計(jì)算機(jī)集群(但與網(wǎng)格的組成、體系結(jié)構(gòu)、目的、工作方式大相徑庭),也吸收了自主計(jì)算和效用計(jì)算的特點(diǎn)。10.2.1云計(jì)算定義大數(shù)據(jù)解決方案的構(gòu)架離不開云計(jì)算的支撐。支撐大數(shù)據(jù)及云計(jì)算的底層原則是一樣的,即規(guī)?;?、自動(dòng)化、資源配置、自愈性,這些都是底層的技術(shù)原則。也可以說(shuō),大數(shù)據(jù)是構(gòu)建在云計(jì)算基礎(chǔ)架構(gòu)之上的應(yīng)用形式,因此它很難獨(dú)立于云計(jì)算架構(gòu)而存在。云計(jì)算下的海量存儲(chǔ)、計(jì)算虛擬化、網(wǎng)絡(luò)虛擬化、云安全及云平臺(tái)就像支撐大數(shù)據(jù)這座大樓的鋼筋水泥。只有好的云基礎(chǔ)架構(gòu)支持,大數(shù)據(jù)才能立起來(lái),站得更高。10.2.2云基礎(chǔ)設(shè)施虛擬化是云計(jì)算所有要素中最基本,也是最核心的組成部分。和云計(jì)算在最近幾年才出現(xiàn)不同,虛擬化技術(shù)的發(fā)展其實(shí)已經(jīng)走過(guò)了半個(gè)多世紀(jì)(1956)。在虛擬化技術(shù)的發(fā)展初期,IBM是主力軍,它把虛擬化技術(shù)用在了大型機(jī)領(lǐng)域。1964年,IBM設(shè)計(jì)了名為CP-40的新型操作系統(tǒng),實(shí)現(xiàn)了虛擬內(nèi)存和虛擬機(jī)。到1965年,IBM推出了System/360Model67和TSS分時(shí)共享系統(tǒng),允許很多遠(yuǎn)程用戶共享同一高性能計(jì)算設(shè)備的使用時(shí)間。10.2.2云基礎(chǔ)設(shè)施1972年,IBM發(fā)布了用于創(chuàng)建靈活大型主機(jī)的虛擬機(jī)技術(shù),實(shí)現(xiàn)了根據(jù)動(dòng)態(tài)需求快速而有效地使用各種資源的效果。作為對(duì)大型機(jī)進(jìn)行邏輯分區(qū)以形成若干獨(dú)立虛擬機(jī)的一種方式。這些分區(qū)允許大型機(jī)進(jìn)行“多任務(wù)處理”——同時(shí)運(yùn)行多個(gè)應(yīng)用程序和進(jìn)程。由于當(dāng)時(shí)大型機(jī)是十分昂貴的資源,虛擬化技術(shù)起到了提高投資利用率的作用。利用虛擬化技術(shù),允許在一臺(tái)主機(jī)上運(yùn)行多個(gè)操作系統(tǒng),讓用戶盡可能地充分利用昂貴的大型機(jī)資源。其后,虛擬化技術(shù)從大型機(jī)延伸到UNIX小型機(jī)領(lǐng)域。10.2.2云基礎(chǔ)設(shè)施1998年,VMware公司成立,這是在x86虛擬化技術(shù)發(fā)展史上很重要的一個(gè)里程碑。VMware發(fā)布的第一款虛擬化產(chǎn)品VMwareVirtualPlatform,通過(guò)運(yùn)行在WindowsNT上的VMware來(lái)啟動(dòng)Windows95,開啟了虛擬化在x86服務(wù)器上的應(yīng)用。10.2.2云基礎(chǔ)設(shè)施相比于大型機(jī)和小型機(jī),x86服務(wù)器和虛擬化技術(shù)并不是兼容得很好。但是VMware針對(duì)x86平臺(tái)研發(fā)的虛擬化技術(shù)不僅克服了虛擬化技術(shù)層面的種種挑戰(zhàn),其提供的VMware基礎(chǔ)設(shè)施更是極大地方便了虛擬機(jī)的創(chuàng)建和管理。VMware對(duì)虛擬化技術(shù)的研究,開創(chuàng)了虛擬化技術(shù)的x86時(shí)代,在很長(zhǎng)一段時(shí)間內(nèi),服務(wù)器虛擬化市場(chǎng)都是VMware一枝獨(dú)秀。虛擬化技術(shù)中最核心的部分分別是計(jì)算虛擬化、存儲(chǔ)虛擬化和網(wǎng)絡(luò)虛擬化。10.2.2云基礎(chǔ)設(shè)施PART03計(jì)算虛擬化計(jì)算虛擬化,又稱平臺(tái)虛擬化或服務(wù)器虛擬化,它的核心思想是使在一個(gè)物理計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)操作系統(tǒng)成為可能。在虛擬化世界中,我們通常把提供虛擬化能力的物理計(jì)算機(jī)稱為宿主機(jī),而把在虛擬化環(huán)境中運(yùn)行的計(jì)算機(jī)稱為客戶機(jī)。宿主機(jī)和客戶機(jī)雖然運(yùn)行在同樣的硬件上,但是它們?cè)谶壿嬌蠀s是完全隔離的。10.3計(jì)算虛擬化這些虛擬計(jì)算機(jī)(以及物理計(jì)算機(jī))在邏輯上是完全隔離的,擁有各自獨(dú)立的軟、硬件環(huán)境。討論計(jì)算虛擬化,所涉及的計(jì)算機(jī)僅包含構(gòu)成一個(gè)最小計(jì)算單位所需的部件,其中包括處理器(CPU)和內(nèi)存,不包含任何可選的外接設(shè)備(例如,主板、硬盤、網(wǎng)卡、顯卡、聲卡等)。10.3計(jì)算虛擬化計(jì)算虛擬化是大數(shù)據(jù)處理不可缺少的支撐技術(shù),其作用體現(xiàn)在提高設(shè)備利用率、提高系統(tǒng)可靠性、解決計(jì)算單元管理問(wèn)題等方面。將大數(shù)據(jù)應(yīng)用運(yùn)行在虛擬化平臺(tái)上,可以充分享受虛擬化帶來(lái)的管理紅利。例如,虛擬化可以支持對(duì)虛擬機(jī)的快照(Snapshot)操作,從而使得備份和恢復(fù)變得更加簡(jiǎn)單、透明和高效。此外,虛擬機(jī)還可以根據(jù)需要?jiǎng)討B(tài)遷移到其他物理機(jī)上,這一特性可以讓大數(shù)據(jù)應(yīng)用享受高可靠性和容錯(cuò)性。10.3計(jì)算虛擬化虛擬機(jī)(VirtualMachine,VM)是對(duì)物理計(jì)算機(jī)功能的一種部分或完全的軟件模擬,其中虛擬設(shè)備在硬件細(xì)節(jié)上可以獨(dú)立于物理設(shè)備。虛擬機(jī)的實(shí)現(xiàn)目標(biāo)通常是在其中不經(jīng)修改地運(yùn)行那些原本為物理計(jì)算機(jī)設(shè)計(jì)的程序。通常情況下,多臺(tái)虛擬機(jī)可以共存于一臺(tái)物理機(jī)上,以期獲得更高的資源使用率以及降低整體的費(fèi)用。虛擬機(jī)之間是互相獨(dú)立、完全隔離的。

圖10-8VMware虛擬化10.3計(jì)算虛擬化虛擬機(jī)管理程序(VMM)是在宿主機(jī)上提供虛擬機(jī)創(chuàng)建和運(yùn)行管理的軟件系統(tǒng)或固件。虛擬機(jī)管理程序可以歸納為原生的和托管的兩個(gè)類型。前者直接運(yùn)行在硬件上去管理硬件和虛擬機(jī),常見(jiàn)的有XenServer、KVM、VMwareESX/ESXi和微軟的Hyper-V。后者則運(yùn)行在常規(guī)的操作系統(tǒng)上,作為二層的管理軟件存在,而客戶機(jī)相對(duì)硬件來(lái)說(shuō)則是在第三層運(yùn)行,常見(jiàn)的有VMware工作站和Virtual盒子。10.3計(jì)算虛擬化PART04網(wǎng)絡(luò)虛擬化網(wǎng)絡(luò)虛擬化,簡(jiǎn)單來(lái)講是指把邏輯網(wǎng)絡(luò)從底層的物理網(wǎng)絡(luò)分離開來(lái)。網(wǎng)絡(luò)虛擬化涉及的技術(shù)范圍相當(dāng)寬泛,包括網(wǎng)卡的虛擬化、虛擬接入技術(shù)、覆蓋網(wǎng)絡(luò)交換,以及軟件定義的網(wǎng)絡(luò)等,這個(gè)概念的產(chǎn)生已經(jīng)比較久了。VLAN、VPN、VPLS等都可以歸為網(wǎng)絡(luò)虛擬化的技術(shù)。近年來(lái),云計(jì)算的浪潮席卷IT界。幾乎所有的IT基礎(chǔ)構(gòu)架都在朝著云的方向發(fā)展。10.4網(wǎng)絡(luò)虛擬化在云計(jì)算的發(fā)展中,虛擬化技術(shù)一直是重要的推動(dòng)因素。作為基礎(chǔ)構(gòu)架,服務(wù)器和存儲(chǔ)的虛擬化已經(jīng)發(fā)展得有聲有色,而同作為基礎(chǔ)構(gòu)架的網(wǎng)絡(luò)卻還是一直沿用老的套路。在這種環(huán)境下,網(wǎng)絡(luò)確實(shí)期待一次變革,使之更加符合云計(jì)算和互聯(lián)網(wǎng)發(fā)展的需求。在云計(jì)算的大環(huán)境下,網(wǎng)絡(luò)虛擬化的定義沒(méi)有變,但是其包含的內(nèi)容卻大大增加了(例如動(dòng)態(tài)性、多租戶模式等)。10.4網(wǎng)絡(luò)虛擬化多個(gè)虛擬機(jī)共享服務(wù)器中的物理網(wǎng)卡,需要一種機(jī)制既能保證I/O的效率,又能保證多個(gè)虛擬機(jī)對(duì)用物理網(wǎng)卡共享使用。I/O虛擬化的出現(xiàn)就是為了解決這類問(wèn)題。I/O虛擬化包括了從CPU到設(shè)備的一攬子解決方案。10.4.1網(wǎng)卡虛擬化從CPU的角度看,要解決虛擬機(jī)訪問(wèn)物理網(wǎng)卡等I/O設(shè)備的性能問(wèn)題,能做的就是直接支持虛擬機(jī)內(nèi)存到物理網(wǎng)卡的DMA操作。Intel的VT-d技術(shù)及AMD的輸入/輸出內(nèi)存管理單元技術(shù)通過(guò)DMA重新映射機(jī)制來(lái)解決這個(gè)問(wèn)題。DMA重新映射機(jī)制主要解決了兩個(gè)問(wèn)題,一方面為每個(gè)VM創(chuàng)建了一個(gè)DMA保護(hù)域并實(shí)現(xiàn)了安全的隔離,另一方面提供一種機(jī)制是將虛擬機(jī)的物理地址翻譯為物理機(jī)的物理地址。10.4.1網(wǎng)卡虛擬化從虛擬機(jī)對(duì)網(wǎng)卡等設(shè)備訪問(wèn)角度看,傳統(tǒng)虛擬化的方案是虛擬機(jī)通過(guò)虛擬機(jī)管理程序來(lái)共享地訪問(wèn)一個(gè)物理網(wǎng)卡,虛擬機(jī)管理程序需要處理多虛擬機(jī)對(duì)設(shè)備的并發(fā)訪問(wèn)和隔離等。具體的實(shí)現(xiàn)方式是通過(guò)軟件模擬多個(gè)虛擬網(wǎng)長(zhǎng)(完全獨(dú)立于物理網(wǎng)卡),所有的操作都在CPU與內(nèi)存進(jìn)行。這樣的方案滿足了多租戶模式的需求,但是犧牲了整體的性能,因?yàn)樘摂M機(jī)管理程序很容易形成一個(gè)性能瓶頸。為了提高性能,一種做法是虛擬機(jī)繞過(guò)虛擬機(jī)管理程序直接操作物理網(wǎng)卡,這種做法通常稱為PCI直通,VMware、XEN和KVM都支持這種技術(shù)。但這種做法的問(wèn)題是虛擬機(jī)通常需要獨(dú)占一個(gè)PCI插槽,不是一個(gè)完整的解決方案,成本較高且擴(kuò)展性不足。10.4.1網(wǎng)卡虛擬化最新的解決方案是物理設(shè)備(如網(wǎng)卡)直接對(duì)上層操作系統(tǒng)或虛擬機(jī)管理程序提供虛擬化的功能,一個(gè)以太網(wǎng)卡可以對(duì)上層軟件提供多個(gè)獨(dú)立的虛擬的PCIe設(shè)備并提供虛擬通道來(lái)實(shí)現(xiàn)并發(fā)訪問(wèn);這些虛擬設(shè)備擁有各自獨(dú)立的總線地址,從而可以提供對(duì)虛擬機(jī)I/O的DMA支持。這樣一來(lái),CPU得以從繁重的I/O中解放出來(lái),能夠更加專注于核心的計(jì)算任務(wù)(例如大數(shù)據(jù)分析)。這種方法也是業(yè)界主流的做法和發(fā)展方向,目前已經(jīng)形成了標(biāo)準(zhǔn)。10.4.1網(wǎng)卡虛擬化在虛擬化早期階段,由于物理網(wǎng)卡并不具備為多個(gè)虛擬機(jī)服務(wù)的能力,為了將同一物理機(jī)上的多臺(tái)虛擬機(jī)接入網(wǎng)絡(luò),引入了一個(gè)虛擬交換機(jī)的概念。通常也稱為軟件交換機(jī),以區(qū)別于硬件實(shí)現(xiàn)的網(wǎng)絡(luò)交換機(jī)。虛擬機(jī)通過(guò)虛擬網(wǎng)片接入到虛擬交換機(jī),然后通過(guò)物理網(wǎng)卡外連到外部交換機(jī),從而實(shí)現(xiàn)了外部網(wǎng)絡(luò)接入,例如VMware虛擬交換機(jī)就屬于這一類技術(shù)。圖10-9VMware虛擬交換機(jī)結(jié)構(gòu)圖10.4.2虛擬交換機(jī)這樣的解決方案也帶來(lái)一系列的問(wèn)題。首先,一個(gè)很大的顧慮就是性能問(wèn)題,因?yàn)樗械木W(wǎng)絡(luò)交換都必須通過(guò)軟件模擬。研究表明:一個(gè)接入10~15臺(tái)虛擬機(jī)的軟件交換機(jī),通常需要消耗10%~15%的主機(jī)計(jì)算能力;隨著虛擬機(jī)數(shù)量的增長(zhǎng),性能問(wèn)題無(wú)疑將更加嚴(yán)重。其次,由于虛擬交換機(jī)工作在二層,無(wú)形中也使得二層子網(wǎng)的規(guī)模變得更大。更大的子網(wǎng)意味著更大的廣播域,對(duì)性能和管理來(lái)說(shuō)都是不小的挑戰(zhàn)。最后,由于越來(lái)越多的網(wǎng)絡(luò)數(shù)據(jù)交換在虛擬交換機(jī)內(nèi)進(jìn)行,傳統(tǒng)的網(wǎng)絡(luò)監(jiān)控和安全管理工具無(wú)法對(duì)其進(jìn)行管理,也意味著管理和安全的復(fù)雜性大大增加了。10.4.2虛擬交換機(jī)在傳統(tǒng)的服務(wù)器虛擬化方案中,從虛擬機(jī)的虛擬網(wǎng)卡發(fā)出的數(shù)據(jù)包在經(jīng)過(guò)服務(wù)器的物理網(wǎng)片傳送到外部網(wǎng)絡(luò)的上聯(lián)交換機(jī)后,虛擬機(jī)的標(biāo)識(shí)信息被屏蔽掉了,上聯(lián)交換機(jī)只能感知從某個(gè)服務(wù)器的物理網(wǎng)卡流出的所有流量,而無(wú)法感知服務(wù)器內(nèi)某個(gè)虛擬機(jī)的流量,這桿就不能從傳統(tǒng)網(wǎng)絡(luò)設(shè)備層面來(lái)保證服務(wù)質(zhì)量和安全隔離。虛擬接入要解決的問(wèn)題是要把虛擬機(jī)的網(wǎng)絡(luò)流量納入傳統(tǒng)網(wǎng)絡(luò)交換設(shè)備的管理之中,需要對(duì)虛擬機(jī)的流量做標(biāo)識(shí)。10.4.3接入層虛擬化虛擬網(wǎng)絡(luò)并不是全新的概念,事實(shí)上我們熟知的VLAN就是一種已有的方案。VLAN的作用是在一個(gè)大的物理二層網(wǎng)絡(luò)里劃分出多個(gè)互相隔離的虛擬三層網(wǎng)絡(luò),這個(gè)方案在傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)中得到了廣泛的應(yīng)用。這里就引出了虛擬網(wǎng)絡(luò)的第一個(gè)需求:隔離;VLAN雖然很好地解決了這個(gè)需求。然而由于內(nèi)在的缺陷,VLAN無(wú)法滿足第二個(gè)需求,即可擴(kuò)展性(支持?jǐn)?shù)量龐大的虛擬網(wǎng)絡(luò))。隨著云計(jì)算的興起,一個(gè)數(shù)據(jù)中心需要支持上百萬(wàn)的用戶,每個(gè)用戶需要的子網(wǎng)可能也不止一個(gè)。在這樣的需求背景下,VLAN已經(jīng)遠(yuǎn)遠(yuǎn)不敷使用,需要重新思考虛擬網(wǎng)絡(luò)的設(shè)計(jì)與實(shí)現(xiàn)。10.4.4覆蓋網(wǎng)絡(luò)虛擬化當(dāng)虛擬數(shù)據(jù)中心開始普及后,其本身的一些特性也帶來(lái)對(duì)網(wǎng)絡(luò)新的需求。物理機(jī)的位置一般是相對(duì)固定的,虛擬化方案的一個(gè)很大的特性在于虛擬機(jī)可以遷移。當(dāng)遷移發(fā)生在不同網(wǎng)絡(luò)、不同數(shù)據(jù)中心之間時(shí),對(duì)網(wǎng)絡(luò)產(chǎn)生了新的要求,比如需要保證虛擬機(jī)的IP在遷移前后不發(fā)生改變,需要保證虛擬機(jī)內(nèi)運(yùn)行的應(yīng)用程序在遷移后仍可以跨越網(wǎng)絡(luò)和數(shù)據(jù)中心進(jìn)行通信等。這又引出了虛擬網(wǎng)絡(luò)的第三個(gè)需求:支持動(dòng)態(tài)遷移。10.4.4覆蓋網(wǎng)絡(luò)虛擬化覆蓋網(wǎng)絡(luò)虛擬化就是應(yīng)以上需求而生的,它可以更好地滿足云計(jì)算和下一代數(shù)據(jù)中心的需求,它為用戶虛擬化應(yīng)用帶來(lái)了許多好處(特別是對(duì)大規(guī)模的、分布式的數(shù)據(jù)處理),包括:(1)虛擬網(wǎng)絡(luò)的動(dòng)態(tài)創(chuàng)建與分配;(2)虛擬機(jī)的動(dòng)態(tài)遷移(跨子網(wǎng)、跨數(shù)據(jù)中心);(3)一個(gè)虛擬網(wǎng)絡(luò)可以跨多個(gè)數(shù)據(jù)中心;(4)將物理網(wǎng)絡(luò)與虛擬網(wǎng)絡(luò)的管理分離;(5)安全(邏輯抽象與完全隔離)。10.4.4覆蓋網(wǎng)絡(luò)虛擬化OpenFlow和SDN(軟件定義網(wǎng)絡(luò))盡管不是專門為網(wǎng)絡(luò)虛擬化而生,但是它們帶來(lái)的標(biāo)準(zhǔn)化和靈活性卻給網(wǎng)絡(luò)虛擬化的發(fā)展帶來(lái)無(wú)限可能。OpenFlow起源于斯坦福大學(xué)的CleanSlate項(xiàng)目組,其目的是要重新發(fā)明因特網(wǎng),旨在改變現(xiàn)有的網(wǎng)絡(luò)基礎(chǔ)架構(gòu)。2006年,斯坦福的學(xué)生馬丁·卡薩多領(lǐng)導(dǎo)的Ethane項(xiàng)目試圖通過(guò)一個(gè)集中式的控制器,讓網(wǎng)絡(luò)管理員可以方便地定義基于網(wǎng)絡(luò)流的安全控制策略,并將這些安全策略應(yīng)用到各種網(wǎng)絡(luò)設(shè)備中,從而實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)通信的安全控制。10.4.5軟件定義網(wǎng)絡(luò)(SDN)受此項(xiàng)目啟發(fā),研究人員發(fā)現(xiàn)如果將傳統(tǒng)網(wǎng)絡(luò)設(shè)備的數(shù)據(jù)轉(zhuǎn)發(fā)和路由控制兩個(gè)功能模塊相分離,通過(guò)集中式的控制器以標(biāo)準(zhǔn)化的接口對(duì)各種網(wǎng)絡(luò)設(shè)備進(jìn)行管理和配置,這將為網(wǎng)絡(luò)資源的設(shè)計(jì)、管理和使用提供更多的可能性,從而更容易推動(dòng)網(wǎng)絡(luò)的革新與發(fā)展。10.4.5軟件定義網(wǎng)絡(luò)(SDN)OpenFlow可能的應(yīng)用場(chǎng)景包括:(1)校園網(wǎng)絡(luò)中對(duì)實(shí)驗(yàn)性通信協(xié)議的支持;(2)網(wǎng)絡(luò)管理和訪問(wèn)控制;(3)網(wǎng)絡(luò)隔離和VLAN;(4)基于WiFi的移動(dòng)網(wǎng)絡(luò);(5)非IP網(wǎng)絡(luò);(6)基于網(wǎng)絡(luò)包的處理。10.4.5軟件定義網(wǎng)絡(luò)(SDN)PART05存儲(chǔ)虛擬化存儲(chǔ)虛擬化是一種貫穿于整個(gè)IT環(huán)境、用于簡(jiǎn)化本來(lái)可能會(huì)相對(duì)復(fù)雜的底層基礎(chǔ)架構(gòu)的技術(shù)。存儲(chǔ)虛擬化的思想是將資源的邏輯映像與物理存儲(chǔ)分開,從而為系統(tǒng)和管理員提供一幅簡(jiǎn)化、無(wú)縫的資源虛擬視圖。10.5存儲(chǔ)虛擬化對(duì)于用戶來(lái)說(shuō),虛擬化的存儲(chǔ)資源就像是一個(gè)巨大的“存儲(chǔ)池”,用戶不會(huì)看到具體的磁盤、磁帶,也不必關(guān)心自己的數(shù)據(jù)經(jīng)過(guò)哪一條路徑通往哪一個(gè)具體的存儲(chǔ)設(shè)備。

圖10-10異構(gòu)環(huán)境構(gòu)建存儲(chǔ)虛擬化10.5存儲(chǔ)虛擬化從管理的角度來(lái)看,虛擬存儲(chǔ)池是采取集中化的管理,并根據(jù)具體的需求把存儲(chǔ)資源動(dòng)態(tài)地分配給各個(gè)應(yīng)用。值得特別指出的是,利用虛擬化技術(shù),可以用磁盤陣列模擬磁帶庫(kù),為應(yīng)用提供速度像磁盤一樣快、容量卻像磁帶庫(kù)一樣大的存儲(chǔ)資源,這就是當(dāng)今應(yīng)用越來(lái)越廣泛的虛擬磁帶庫(kù),在當(dāng)今企業(yè)存儲(chǔ)系統(tǒng)中扮演著越來(lái)越重要的角色。10.5存儲(chǔ)虛擬化將存儲(chǔ)作為池子一樣,存儲(chǔ)空間如同一個(gè)流動(dòng)的池子的水一樣,可以任意地根據(jù)需要進(jìn)行分配。通過(guò)將一個(gè)(或多個(gè))目標(biāo)服務(wù)或功能與其它附加的功能集成,統(tǒng)一提供有用的全面功能服務(wù)。典型的虛擬化包括如下一些情況:屏蔽系統(tǒng)的復(fù)雜性,增加或集成新的功能,仿真、整合或分解現(xiàn)有的服務(wù)功能等。虛擬化是作用在一個(gè)或者多個(gè)實(shí)體上的,而這些實(shí)體則是用來(lái)提供存儲(chǔ)資源及服務(wù)的。10.5存儲(chǔ)虛擬化PART06云計(jì)算服務(wù)形式云計(jì)算按照服務(wù)的組織方式不同,有公有云、私有云、混合云之分。公有云向所有人提供服務(wù),典型的公有云提供商例如阿里云、騰訊云等,人們可以用相對(duì)低廉的價(jià)格方便地使用虛擬主機(jī)服務(wù)。私有云往往只針對(duì)特定客戶群提供服務(wù),比如一個(gè)企業(yè)內(nèi)部IT可以在自己的數(shù)據(jù)中心搭建私有云,并向企業(yè)內(nèi)部提供服務(wù)。也有部分企業(yè)整合了內(nèi)部私有云和公有云,統(tǒng)一交付云服務(wù),這就是混合云。10.6云計(jì)算服務(wù)形式云計(jì)算包括以下幾個(gè)層次的服務(wù):基礎(chǔ)設(shè)施即服務(wù)(IaaS),平臺(tái)即服務(wù)(PaaS)和軟件即服務(wù)(SaaS)。這里,分層體系架構(gòu)意義上的“層次”IaaS、PaaS和SaaS分別在基礎(chǔ)設(shè)施層、軟件開放運(yùn)行平臺(tái)層和應(yīng)用軟件層實(shí)現(xiàn)。

圖10-11IaaS和PaaS都脫胎于SaaS10.6.1云計(jì)算的服務(wù)層次IaaS(基礎(chǔ)設(shè)施即服務(wù)):消費(fèi)者通過(guò)因特網(wǎng)可以從完善的計(jì)算機(jī)基礎(chǔ)設(shè)施獲得服務(wù)。IaaS通過(guò)網(wǎng)絡(luò)向用戶提供計(jì)算機(jī)(物理機(jī)和虛擬機(jī))、存儲(chǔ)空間、網(wǎng)絡(luò)連接、負(fù)載均衡和防火墻等基本計(jì)算資源;用戶在此基礎(chǔ)上部署和運(yùn)行各種軟件,包括操作系統(tǒng)和應(yīng)用程序。例如,通過(guò)亞馬遜的AWS,用戶可以按需定制所要的虛擬主機(jī)和塊存儲(chǔ)等,在線配置和管理這些資源。10.6.1云計(jì)算的服務(wù)層次PaaS(平臺(tái)即服務(wù)):實(shí)際上是指將軟件研發(fā)的平臺(tái)作為一種服務(wù),以SaaS的模式提交給用戶。因此,PaaS也是SaaS模式的一種應(yīng)用。但是,PaaS的出現(xiàn)可以加快SaaS的發(fā)展,尤其是加快SaaS應(yīng)用的開發(fā)速度。平臺(tái)通常包括操作系統(tǒng)、編程語(yǔ)言的運(yùn)行環(huán)境、數(shù)據(jù)庫(kù)和Web服務(wù)器,用戶在此平臺(tái)上部署和運(yùn)行自己的應(yīng)用。用戶不能管理和控制底層的基礎(chǔ)設(shè)施,只能控制自己部署的應(yīng)用。目前常見(jiàn)的PaaS提供商有CloudFoundry、谷歌的GAE等。10.6.1云計(jì)算的服務(wù)層次SaaS(軟件即服務(wù)):是一種通過(guò)因特網(wǎng)提供軟件的模式,用戶無(wú)需購(gòu)買軟件,而是向提供商租用基于Web的軟件,來(lái)管理企業(yè)經(jīng)營(yíng)活動(dòng),例如郵件服務(wù)、數(shù)據(jù)處理服務(wù)、財(cái)務(wù)管理服務(wù)等。10.6.1云計(jì)算的服務(wù)層次DaaS(數(shù)據(jù)即服務(wù)):是繼IaaS、PaaS、SaaS之后又一個(gè)新的服務(wù)概念,指數(shù)據(jù)為決策提供依據(jù),數(shù)據(jù)可以轉(zhuǎn)化為財(cái)富。DaaS是一個(gè)跨越大數(shù)據(jù)基礎(chǔ)設(shè)施和應(yīng)用的領(lǐng)域。過(guò)去的公司一般先獲得

溫馨提示

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