




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
云計算與大數據技術
人民郵電出版社王鵬黃焱安俊秀張逸琴編著
目錄CONTENTS第1章云計算與大數據基礎第2章云計算與大數據的相關技術第3章虛擬化技術第4章集群系統基礎第5章MPI—面向計算第6章Hadoop—分布式大數據系統第7章HPCC—面向數據的高性能計算集群系統第8章Storm—基于拓撲的流數據實時計算系統第9章服務器與數據中心第10章云計算大數據仿真技術第2章云計算與大數據的相關技術
《云計算與大數據技術》
第2章云計算與大數據的相關技術
2.1云計算與大數據 2.2云計算與物聯網 2.3一致性哈希算法2.3.1一致性哈希算法的基本原理2.3.2一致性哈希算法中計算和存儲位置的一致性2.4非關系型數據庫2.4.1從關系型數據庫到非關系型數據庫2.4.2非關系型數據庫的定義2.4.3非關系型數據庫的分類2.5集群高速通信標準InfiniBand2.6云計算大數據集群的自組織特性2.1云計算與大數據2.1云計算與大數據云計算與大數據相比云計算更像是對一種新的技術模式的描述而不是對某一項技術的描述,而大數據則較為確切地與一些具體的技術相關聯。目前新出現的一些技術如Hadoop、HPCC、Storm都較為確切地與大數據相關,同時并行計算技術、分布式存儲技術、數據挖掘技術這些傳統的計算機學科在大數據條件下又再次萌發出生機,并在大數據時代找到了新的研究內容。大數據其實是對面向數據計算技術中對數據量的一個形象描述,通常也可以被稱為海量數據。云計算整合的資源主要是計算和存儲資源,云計算技術的發展也清晰地呈現出兩大主題—計算和數據。伴隨這兩大主題,出現了云計算和大數據這兩個熱門概念,任何概念的出現都不是偶然的,取決于當時的技術發展狀況。李國杰院士認為:“信息系統需要從數據圍繞著處理器轉改為處理能力圍繞著數據轉,將計算用于數據,而不是將數據用于計算”。2.1云計算與大數據海量的數據本身很難直接使用,只有通過處理的數據才能真正地成為有用的數據,因此云計算時代計算和數據兩大主題可以進一步明確為數據和針對數據的計算,計算可以使海量的數據成為有用的信息,進而處理成為知識。目前提到云計算時,有時將云存儲作為單獨的一項技術來對待,只是把網絡化的存儲籠統地稱為云存儲,事實上在面向數據的時代不管是出現了云計算的概念還是大數據的概念,存儲都不是一個獨立存在的系統。特別是在集群條件下,計算和存儲都是分布式的,如何讓計算“找”到自己需要處理的數據是云計算系統需要具有的核心功能。2.1云計算與大數據面向數據要求計算是面向數據的,那么數據的存儲方式將會深刻地影響計算實現的方式。在分布式系統中實現計算和數據有效融合從而提高數據處理能力,簡化分布式程序設計難度,降低系統網絡通信壓力從而使系統能有效地面對大數據處理的機制稱為計算和數據的協作機制。在這種協作機制中計算如何找到數據并啟動分布式處理任務的問題是需要重點研究的課題,這一問題被稱為計算和數據的位置一致性問題。2.1云計算與大數據面向數據也可以更準確地稱為“面向數據的計算”,面向數據要求系統的設計和架構是圍繞數據為核心展開的,面向數據也是云計算系統的一個基本特征,而計算與數據的有效協作是面向數據的核心要求。回顧計算機技術的發展歷程,可以清晰地看到計算機技術從面向計算逐步轉變到面向數據的過程。從面向計算到面向數據是技術發展的必然趨勢,并不能把云計算的出現歸功于任何的個人和企業。這一過程的描述如圖2.1所示,該圖從硬件、網絡和云計算的演進過程等方面以時間為順序進行了縱向和橫向的對比。2.1云計算與大數據在計算機技術的早期由于硬件設備體積龐大,價格昂貴,這一階段數據的產生還是“個別”人的工作。這個時期的數據生產者主要是科學家或軍事部門,他們更關注計算機的計算能力,計算能力的高低決定了研究能力和一個國家軍事能力的高低。圖2.1計算機技術向云計算的演進1969年ARPANET的出現改變了整個計算機技術的發展歷史,網絡逐步成為推動技術發展的一個重要力量,1989年TimBerners-Lee發明的萬維網改變了信息的交流方式,特別是高速移動通信網絡技術的發展和成熟使現在數據的生產成為全球人的共同活動,人們生產數據不再是在固定時間和固定地點進行,而是隨時隨地都在產生數據。微博、博客、社交網、視頻共享網站、即時通信等媒介隨時都在生產著數據并被融入全球網絡中。相對而言由于這時數據量很小,數據在整個計算系統中的重要性并不突出。這時網絡還沒有出現,推動計算技術發展的主要動力是硬件的發展,這個時期是硬件的高速變革時期,硬件從電子管迅速發展到大規模集成電路。從云計算之父JohnMcCarthy提出云計算的概念到大數據之父Gray等人提出科學研究的第四范式,時間已經跨越了半個世紀。以硬件為核心的時代也是面向計算的時代,那時數據的構成非常簡單,數據之間基本沒有關聯性,物理學家只處理物理實驗數據,生物學家只處理生物學數據,計算和數據之間的對應關系是非常簡單和直接,這個時期研究計算和存儲的協作機制并沒有太大的實用價值。到了以網絡為核心的時代數據的構成變得非常復雜,數據來源多樣化,不同數據之間存在大量的隱含關聯性,這時計算所面對的數據變得非常復雜,如社會感知、微關系等應用將數據和復雜的人類社會運行相關聯,由于人人都是數據的生產者,人們之間的社會關系和結構就被隱含到了所產生的數據之中。數據的產生目前呈現出了:大眾化、自動化、連續化、復雜化的趨勢。云計算、大數據概念正是在這樣的一個背景下出現的。這一時期的典型特征就是計算必須面向數據,數據是架構整個系統的核心要素,這就使計算和存儲的協作機制研究成為需要重點關注的核心技術,計算能有效找到自己需要處理的數據,可以使系統能更高效地完成海量數據的處理和分析。云計算和大數據這兩個名詞也可看作是描述了面向計算時代信息技術的兩個方面,云計算側重于描述資源和應用的網絡化交付方法,大數據側重于描述面向數據時代由于數據量巨大所帶來的技術挑戰。信息技術領域提出的面向數據的概念同時也開始深刻地改變了科學研究的模式,2007年著名的數據庫專家Gray提出了科學研究的第四范式。他認為利用海量的數據可以為科學研究和知識發現提供除經驗、理論、計算外的第四種重要方法。科學研究的四個范式的發展歷程也同樣反映了從面向計算走向面向數據的過程。
2.1云計算與大數據如圖2.2所示,人類早期知識的發現主要依賴于經驗、觀察和實驗,需要的計算和產生的數據都是很少的。人類在這一時期對于宇宙的認識都是這樣形成的,就像伽利略為了證明自由落體定理,是通過在比薩斜塔扔下兩個大小不一的小球一樣,人類在那個時代知識的獲取方式是原始而樸素的。圖2.2科學研究四個范式的發展歷程當人類知識積累到一定的程度后,知識逐漸形成了理論體系,如牛頓力學體系、Maxwell的電磁場理論,人類可以利用這些理論體系去預測自然并獲取新的知識,這時對計算和數據的需求已經在萌生,人類已可以依賴這些理論發現新的行星,如海王星、冥王星的發現不是通過觀測而是通過計算得到。計算機的出現為人類發現新的知識提供了重要的工具。這個時代正好對應于面向計算的時代,可以在某些具有完善理論體系領域利用計算機仿真計算來進行研究。這時計算機的作用主要是計算,例如人類利用仿真計算可以實現模擬核爆這樣的復雜計算。
現在人類在一年內所產生的數據可能已經超過人類過去幾千年產生的數據的總和,即使是復雜度為的數據處理方法在面對龐大的時都顯得力不從心,人類逐步進入面向數據的時代。第四范式說明可以利用海量數據加上高速計算發現新的知識,計算和數據的關系在面向數據時代變得十分緊密,也使計算和數據的協作問題面臨巨大的技術挑戰。2.1云計算與大數據2.2云計算與物聯網2.2云計算與物聯網云計算和物聯網在出現的時間上非常接近,以至于有一段時間云計算和物聯網兩個名詞總是同時出現在各類媒體上。物聯網的出現部分得益于網絡的發展,大量傳感器數據的收集需要良好的網絡環境,特別是部分圖像數據的傳輸更是對網絡的性能有較高的要求。在物聯網技術中傳感器的大量使用使數據的生產實現自動化,數據生產的自動化也是推動當前大數據技術發展的動力之一。物聯網的英文名稱為“TheInternetofThings”,簡稱:IOT。物聯網就是“物物相連的互聯網”。這有兩層意思:第一,物聯網的核心和基礎仍然是互聯網,是在互聯網基礎之上的延伸和擴展的一種網絡;第二,其用戶端延伸和擴展到了任何物品與物品之間,進行信息交換和通信。2.2云計算與物聯網因此,物聯網的定義是通過射頻識別(RFID)裝置、紅外感應器、全球定位系統、激光掃描器等信息傳感設備,按約定的協議,把任何物品與互聯網相連接,進行信息交換和通信,以實現智能化識別、定位、跟蹤、監控和管理的一種網絡。明確的物聯網概念最早是由美國麻省理工大學Auto-ID實驗室在1999年提出的,最初是為了提高基于互聯網流通領域信息化水平而設計的。物聯網這個概念可以認為對一類應用的稱呼,物聯網與云計算技術的關系從定義上講是應用與平臺的關系。2.2云計算與物聯網物聯網系統需要大量的存儲資源來保存數據,同時也需要計算資源來處理和分析數據,當前我們所指的物聯網傳感器連接呈現出以下的特點:連接傳感器種類多樣;連接的傳感器數量眾多;連接的傳感器地域廣大。這些特點都會導致物聯網系統會在運行過程中產生大量的數據,物聯網的出現使數據的產生實現自動化,大量的傳感器數據不斷地在各個監控點產生,特別是現在信息采樣的空間密度和時間密度不斷增加,視頻信息的大量使用,這些因素也是目前導致大數據概念出現的原因之一。2.2云計算與物聯網物聯網的產業鏈可以細分為標識、感知、處理和信息傳送4個環節,每個環節的關鍵技術分別為RFID、傳感器、智能芯片和電信運營商的無線傳輸網絡。云計算的出現使物聯網在互聯網基礎之上延伸和發展成為可能。物聯網中的物,在云計算模式中,它相當于是帶上傳感器的云終端,與上網本、手機等終端功能相同。這也是物聯網在云計算日漸成熟的今天,才能重新被激活的原因之一。2.2云計算與物聯網新的平臺必定造就新的物聯網,把云計算的特點與物聯網的實際相結合,云計算技術將給物聯網帶來以下深刻變革:(1)解決服務器節點的不可靠性問題,最大限度降低服務器的出錯率。近年來,隨著物聯網從局域網走向城域網,其感知信息也呈指數型增長,同時導致服務器端的服務器數目呈線性增長。服務器數目多了,節點出錯的概率肯定也隨之變大,更何況服務器并不便宜。節點不可信問題使得一般的中小型公司要想獨自撐起一片屬于自己的天空,那是難上加難。而在云計算模式中,因為“云”有成千上萬、甚至上百萬臺服務器,即使同時宕掉幾臺,“云”中的服務器也可以在很短的時間內,利用冗余備份、熱拔插、RAID等技術快速恢復服務。例如,Google公司不再是一味追求單個服務器的性能參數,而是更多地關注如何用堆積如山的集群來彌補單個服務器的性能不足。在對單個服務器性能要求的降低的同時也減少了相應的資金需求。至于對于宕機的服務器,Google采用的是直接換掉。云計算集群的加入,能夠保證物聯網真正實現無間斷的安全服務。2.2云計算與物聯網(2)低成本的投入可以換來高收益,讓限制訪問服務器次數的瓶頸成為歷史。服務器相關硬件資源的承受能力都是有一定范圍的,當服務器同時響應的數量超過自身的限制時,服務器就會崩潰。而隨著物聯網領域的逐步擴大,物的數量呈幾何級增長,而物的信息也呈爆炸性增長,隨之而來的訪問量空前高漲。因此,為了讓服務器能安全可靠地運行,只有不斷增加服務器的數量和購買更高級的服務器,或者限制同時訪問服務器的數量。然而這兩種方法都存在致命的缺點:服務器的增加,雖能通過大量的經費投入解決一時的訪問壓力,但設備的浪費卻是巨大的。而采用云計算技術,可以動態地增加或減少云模式中服務器的數量和提高質量,這樣做不僅可以解決訪問的壓力,還經濟實惠。2.2云計算與物聯網(3)讓物聯網從局域網走向城域網甚至是廣域網,在更廣的范圍內進行信息資源共享。局域網中的物聯網就像是一個超市,物聯網中的物就是超市中的商品,商品離開這個超市到另外的超市,盡管它還存在,但服務器端內該物體的信息會隨著它的離開而消失。其信息共享的局限性不言而喻。但通過云計算技術,物聯網的信息直接存放在Internet的“云”上,而每個“云”有幾百萬臺服務器分布在全國甚至是全球的各個角落,無論這個物走到哪兒,只要具備傳感器芯片,“云”中最近的服務器就能收到它的信息,并對其信息進行定位、分析、存儲、更新。用戶的地理位置也不再受限制,只要通過Internet就能共享物體的最新信息。2.2云計算與物聯網(4)將云計算與數據挖掘技術相結合,增強物聯網的數據處理能力,快速做出商業抉擇。伴隨著物聯網應用的不斷擴大,業務應用范圍從單一領域發展到所有的各行各業,信息處理方式從分散到集中,產生了大量的業務數據。運用云計算技術,由云模式下的幾百萬臺的計算機集群提供強大的計算能力,并通過龐大的計算機處理程序自動將任務分解成若干個較小的子任務,快速地對海量業務數據進行分析、處理、存儲、挖掘,在短時間內提取出有價值的信息,為物聯網的商業決策服務。這也是將云計算技術與數據挖掘技術相結合給物聯網帶來的一大競爭優勢。2.2云計算與物聯網任何技術從萌芽到成型,再到成熟,都需要經歷一個過程。云計算技術作為一項有著廣泛應用前景的新興前沿技術,尚處于成型階段,自然也面臨著一些問題。首先是標準化問題。雖然云平臺解決的問題一樣,架構一樣,但基于不同的技術、應用,其細節很可能完全不同,從而導致平臺與平臺之間可能無法互通。目前在Google、EMC、Amazon等云平臺上都存在許多云技術打造的應用程序,卻無法跨平臺運行。這樣一來,物聯網的網與網之間的局限性依舊存在。其次是安全問題。物聯網從專用網到互聯網,雖然信息分析、處理得到了質的提升,但同時網絡安全性也遇到了前所未有的挑戰。Internet上的各種病毒、木馬以及惡意入侵程序讓架于云計算平臺上的物聯網處于非常尷尬的境地。2.2云計算與物聯網云計算作為互聯網全球統一化的必然趨勢,其統一虛擬的基礎設施平臺,方便透明的上層調用接口,計算信息的資源共享等特點,完全是在充分考慮了各行各業的整合需求下才形成的拯救互聯網的諾亞方舟。盡管,目前云計算的應用還處在探索測試階段,但隨著物聯網界對云計算技術的關注以及云計算技術的日趨成熟,云計算技術在物聯網中的廣泛應用指日可待。2.2云計算與物聯網2.3一致性哈希算法2.3一致性哈希算法2.3.1一致性哈希算法的基本原理主從結構的云計算系統負載的均衡往往通過主節點來完成,而一些對等結構的云計算系統可以采用一致性哈希算法來實現負載的均衡,這種模式避免了主從結構云計算系統對主節點失效的敏感。哈希算法是一種從稀疏值范圍到緊密值范圍的映射方法,在存儲和計算定位時可以被看作是一種路由算法,通過這種路由算法文件塊能被惟一地定位到一個節點的位置。2.3.1一致性哈希算法的基本原理傳統的哈希算法的容錯性和擴展性都不好,無法有效地適應面向數據系統節點的動態變化。1997年DavidKarger提出了一致性哈希算法來定位數據,實現了云計算系統在節點變化時的單調性,實現了較小的數據遷移代價。Amazon的云存儲系統Dynamo改進了基本的一致性哈希算法,引入了虛擬節點,使系統具有更加均衡地存儲定位能力。Facebook開發的Cassandra系統也是采用了一致性哈希算法的存儲管理算法。2.3.1一致性哈希算法的基本原理一致性哈希算法及其改進算法已成為分布式存儲領域的一個標準技術。使用一致性哈希算法的系統無需中心節點來維護元數據,解決了元數據服務器的單點失效和性能瓶頸問題,但對于系統的負載均衡和調度節點的有效性提出了更高的要求。傳統的哈希算法在節點數沒有變化時能很好地實現數據的分配,但當節點數發生變化時傳統的哈希算法將對數據進行重新的分配,這樣系統恢復的代價就非常大。例如系統中節點數為N,傳統的哈希算法的計算方法為:HASH(Key)%N,當N發生變化時整個哈希的分配次序將完全重新生成。云計算系統通常涉及大量的節點,節點的失效和加入都是非常常見的,傳統的哈希算法無法滿足這種節點數目頻繁變化的要求。2.3.1一致性哈希算法的基本原理一致性哈希的設計目標就是解決節點頻繁變化時的任務分配問題,一致性哈希將整個哈希值空間組織成一個虛擬圓環(如圖2.3所示),圖2.3一致性哈希原理假設某哈希函數H的值空間為0~(232-1),即32位無符號整數,將各節點用H函數哈希,可以將服務器的IP或主機名作為關鍵字哈希,這樣每個節點就能確定其在哈希環上的位置,將Key用H函數映射到哈希空間的一個值,沿該值向后,將遇到的第一個節點作為處理節點;若某個Key的HASH值落在node1和node2各自HASH值的中間位置,則此Key對應的業務請求由node2處理。當增加服務節點時,只會影響與之相鄰的某一節點,其他節點不受影響。如果在node2和node4之間增加一個node5,則只有node4處理的部分Key(HASH值落在node2之后、node5之前的那部分Key)變為由node5來處理,其他節點處理的Key不變。如果節點數不多,則將這些節點映射到值空間之后,分布可能會很不均勻,必然會造成個別節點處理的Key數量遠大于其他節點,這就起不到負載均衡的效果。這可以通過引入虛擬節點的方式解決,即對每一個節點計算多個HASH值,盡量保證這些HASH值比較均勻地分布在值空間中。當根據Key查找節點時,找到的是虛擬節點,然后再根據虛擬節點查找對應的真實節點。2.3.1一致性哈希算法的基本原理簡單地來說,一致性哈希算法的基本實現過程為:對Key值首先用MD5算法將其變換為一個長度32位的十六進制數值,再用這個數值對232取模,將其映射到由232個值構成的環狀哈希空間,對節點也以相同的方法映射到環狀哈希空間,最后Key值會在環狀哈希空間中找到大于它的最小的節點值作為路由值。一致性哈希算法的采用使集群系統在進行任務劃分時不再依賴某些管理節點來維護,并且在節點數據發生變化時能夠以最小的代價實現任務的再分配,這一優點特別符合云計算系統資源池彈性化的要求,因此一致性哈希算法成為了實現無主節點對等結構集群的一種標準算法。2.3.2一致性哈希算法中計算和存儲位置的一致性2.3.2一致性哈希算法中計算和存儲位置的一致性基于一致性哈希的原理可以給出計算和存儲的一致性哈希方法,從而使計算能在數據存儲節點發起。對于多用戶分布式存儲系統來說:“用戶名+邏輯存儲位置”所構成的字符串在系統中是惟一確定的,如屬于用戶wang,邏輯存儲位置為/test/test1.txt的文件所構成的字符串“wang/test/test1.txt”在系統中一定是惟一的,同時某一個計算任務需要對test1.txt這個文件進行操作和處理,則它一定會在程序中指定用戶名和邏輯位置,因此存儲和計算test1.txt都利用相同的一致性哈希算法就能保證計算被分配的節點和當時存儲test1.txt文件時被分配的節點是同一個節點。現在以下面這個應用場景為例,說明一致性哈希算法實現計算和存儲位置一致性的方法:(1)面向相對“小”數據進行處理,典型的文件大小為100MB之內,通常不涉及對文件的分塊問題,這一點與MapReduce框架不同;(2)待處理數據之間沒有強的關聯性,數據塊之間的處理是獨立的,數據處理是不需要進行數據塊之間的消息通信,保證節點間發起的計算是低耦合的計算任務;(3)程序片的典型大小遠小于需要處理的數據大小,計算程序片本質上也可以看作是一種特殊的數據,這一假設在大多數情況下是成立的;(4)數據的存儲先于計算發生。2.3.2一致性哈希算法中計算和存儲位置的一致性根據一致性哈希算法的基本原理在面向數據的分布式系統中計算和存儲位置一致性方法如圖2.4所示,其主要步驟如下:①將服務器節點以IP地址作為Key值,以一致性哈希方法映射到哈希環上;PHOTO②在數據存儲時以(用戶名+文件邏輯位置)作為惟一的Key值,映射到哈希環上,并順時針找到離自己哈希值最近的節點作為實際數據存儲的位置;③在發起計算任務時提取計算任務所要操作的數據對應的(用戶名+文件邏輯位置)值作為Key值,映射到哈希環上,并順時針找到離自己哈希值最近的節點注入程序并發起計算的節點。由于相同用戶的相同數據(用戶名+文件邏輯位置)其在一致性哈希算法作用下一定會被分配到相同的節點,從而保證了計算所發起的節點剛好就是計算所需要處理的數據所在的節點。在這種算法的支持下只要計算程序片需要處理的數據邏輯位置是確定的,系統就會將計算程序片路由到數據存儲位置所在的節點,這時節點間的負載均衡性是由數據分布的均衡化來實現的。圖2.4一致性哈希算法實現計算與數據的位置一致性一致性哈希算法可以實現無中心節點的計算和數據定位,使計算可以惟一地找到其所要處理和分析的數據,使計算能最大可能地在數據存儲的位置發起,從而節約大量的網絡資源,同時避免了系統單點失效造成的不良影響。利用一致性哈希方法在面對海量文件時系統不用維護一個龐大的元數據庫用于保存文件的存儲信息,計算尋找數據的速度非常直接,路由的算法復雜度非常低。需要存儲大量Key-Value的Amazon的電子商務應用和Facebook的社交網站應用都采用了一致性哈希算法。2.3.2一致性哈希算法中計算和存儲位置的一致性2.4非關系型數據庫2.4非關系型數據庫2.4.1從關系型數據庫到非關系型數據庫關系型數據庫(RelationalDatabase)技術是1970年埃德加·科德(EdgarFrankCodd)所提出的,關系型數據庫克服了網絡數據庫模型和層次數據庫模型的一些弱點。1981年埃德加·科德因在關系型數據庫方面的貢獻獲得了圖靈獎,因此埃德加·科德也被稱為“關系數據庫之父”(見圖2.5)。關系型數據庫幾十年來一直是統治數據庫技術的核心標準,目前主要的數據庫系統仍然采用的是關系型數據庫。埃德加·科德發明的關系數據庫不僅有一個堅實的數學基礎,即關系代數,而且埃德加·科德從關系代數的基礎推演出一套關系數據庫的理論。這個理論包括一系列“范式”,可以用來檢查數據庫是否有冗余性和不一致等性質。另外,埃德加·科德也在關系代數基礎之上定義了一系列通用的數據基本操作。但云計算和大數據技術的出現逐步動搖了關系型數據庫的統治地位。圖2.5關系數據庫之父—EdgarFrankCodd2.4.1從關系型數據庫到非關系型數據庫隨著信息產業的發展,特別是在云計算和互聯網Web2.0蓬勃發展的今天,數據庫系統成為了IT架構中信息存儲和處理的必要組成部分,Web2.0是相對Web1.0的新的一類互聯網應用的統稱。Web1.0的主要特點在于用戶通過瀏覽器獲取信息。Web2.0則更注重用戶的交互作用,用戶既是網站內容的瀏覽者,也是網站內容的制造者。2.4.1從關系型數據庫到非關系型數據庫所謂網站內容的制造者是說互聯網上的每一個用戶不再僅僅是互聯網的讀者,同時也成為互聯網的作者;不再僅僅是在互聯網上沖浪,同時也成為波浪制造者;在模式上由單純的“讀”向“寫”以及“共同建設”發展;由被動地接收互聯網信息向主動創造互聯網信息發展,從而更加人性化。云計算資源網絡化的提供方式更是為Web2.0發展提供了無限的想象空間,從這一點看我們已很難將這兩者完全區分開來。云計算技術對數據庫高并發讀/寫的需求,對海量數據的高效率存儲和訪問的需求,對數據庫的高可擴展性和高可用性的需求都讓傳統關系型數據庫系統顯得力不從心。同時關系型數據庫技術中的一些核心技術要求如:數據庫事務一致性需求,數據庫的寫實時性和讀實時性需求,對復雜的SQL查詢,特別是多表關聯查詢的需求等在Web2.0技術中卻并不是必要的,而且系統為此付出了較大的代價。2.4.1從關系型數據庫到非關系型數據庫關系型數據庫技術的出現是云計算、大數據技術的必然需求,非關系型數據庫可以被稱為一項數據庫的革命,從2009年開始,在云計算的發展和開源社區的推動下,非關系型數據庫的發展顯示了較強的活力,也得到了越來越多的用戶關注和認可。目前已經有多家大型IT企業已經采用非關系型數據庫作為重要的生產系統基礎支撐,比如Google的BigTable,Amazon的Dynamo,以及Digg、Twitter、Facebook在使用的Cassandra等。2.4.2非關系型數據庫的定義2.4.2非關系型數據庫的定義非關系型數據庫,又被稱為NoSQL(NotOnlySQL),意為不僅僅是SQL(StructuredQueryLanguage,結構化查詢語言),據維基百科介紹,NoSQL最早出現于1998年,是由CarloStrozzi最早開發的一個輕量、開源、不兼容SQL功能的關系型數據庫。2009年,在一次關于分布式開源數據庫的討論會上,再次提出了NoSQL的概念,此時NoSQL主要是指非關系型、分布式、不提供ACID(數據庫事務處理的四個基本要素)的數據庫設計模式。同年,在亞特蘭大舉行的“NO:SQL(east)”討論會上,對NoSQL最普遍的定義是“非關聯型的”,強調Key-Value存儲和文檔數據庫的優點,而不是單純地反對RDBMS,至此,NoSQL開始正式出現在世人面前。2.4.3非關系型數據庫的分類2.4.3非關系型數據庫的分類NoSQL描述的是大量結構化數據存儲方法的集合,根據結構化方法以及應用場合的不同,主要可以將NoSQL分為以下幾類:(1)Column-Oriented面向檢索的列式存儲,其存儲結構為列式結構,不同于關系型數據庫的行式結構,這種結構會讓很多統計聚合操作更簡單方便,使系統具有較高的可擴展性。這類數據庫還可以適應海量數據的增加以及數據結構的變化,這個特點與云計算所需的相關需求是相符合的。比如GoogleAppengine的BigTable以及相同設計理念的Hadoop子系統HaBase就是這類的典型代表。需要特別指出的是,BigTable特別適用于MapReduce處理,這對于云計算的發展有很高的適應性。2.4.3非關系型數據庫的分類(2)Key-Value面向高性能并發讀/寫的緩存存儲,其結構類似于數據結構中的Hash表,每個Key分別對應一個Value,能夠提供非常快的查詢速度、大數據存放量和高并發操作,非常適合通過主鍵對數據進行查詢和修改等操作。Key-Value數據庫的主要特點是具有極高的并發讀/寫性能,非常適應作為緩存系統使用。MemcacheDB、BerkeleyDB、Redis、Flare就是Key-Value數據庫的代表。2.4.3非關系型數據庫的分類(3)Document-Oriented面向海量數據訪問的文檔存儲,這類存儲的結構與Key-Value非常相似,也是每個Key分別對應一個Value,但是這個Value主要以JSON(JavaScriptObjectNotations)或者XML等格式的文檔來進行存儲。這種存儲方式可以很方便地被面向對象的語言所使用。這類數據庫可以在海量的數據中快速查詢數據,典型代表為MongoDB、CouchDB等。2.4.3非關系型數據庫的分類NoSQL具有擴展簡單、高并發、高穩定性、成本低廉等優勢,也存在一些問題,比如:NoSQL暫不提供對SQL的支持,會造成開發人員的額外學習成本;NoSQL大多為開源軟件,其成熟度與商用的關系型數據庫系統相比有差距;NoSQL的架構特性決定了其很難保證數據的完整性,適合在一些特殊的應用場景使用。2.5集群高速通信標準InfiniBand集群結構是云計算系統的基本結構之一,在集群結構中節點之間的協調和數據傳送一般都通過消息傳遞機制進行,在傳統的高性能計算系統集群內部的網絡通信能力成為了影響集群計算能力的一個重要因素,由于受到網絡通信速度的制約甚至提出以計算換通信的編程理念。云計算系統中集群的規模變得空前巨大,為了很好地實現集群內部的調度和協調高速的網絡通信是必不可少的。InfiniBand就是目前較為常見的一種高速集群通信協議,它在高性能計算領域已得到廣泛的應用。2.5集群高速通信標準InfiniBandInfiniBand是一種全新、功能強大、設計用來支持Internet基礎設施I/O互聯的體系結構。InfiniBand被工業界的頂級公司所支持,執行委員會成員包括:Compaq、Dell、HewlettPackard、IBM、Intel、Microsoft和Sun。InfiniBand行業協會成員總計超過220個。InfiniBand被主要的OEM服務器生產商所支持,用來作為下一代服務器的I/O互聯標準,是第一個高性能的機箱內部I/O互聯方式得到延伸的工業標準。InfiniBand是惟一既提供機箱內底板互聯解決方案,又可以使高速帶寬延伸出機箱外部的互聯標準,是一種把I/O和系統域網絡統一起來的標準。與其他商品化系統域網絡不同,InfiniBand網絡首先由行業協會制定標準,然后生產商根據標準制造出InfiniBand設備,不同生產商的產品要求具有互操作性,這樣可以使InfiniBand產品具有更好的性能價格比。2.5集群高速通信標準InfiniBandInfiniBand是在1999年由FutureIO和NGIO兩個標準整合而來的新型互聯技術。它將復雜的I/O系統與CPU、內存分開,使I/O子系統獨立,采用基于包交換的高速串行鏈路和可擴展的高速交換網絡替代共享總線結構,提供了高帶寬、低延遲、可擴展的I/O互聯。基于I/O通路共享機制的InfiniBand提供了一種連接計算機的新途徑,采用InfiniBand之后,I/O不再是服務器的組成部分,這時遠程存儲設備、I/O設備和服務器之間的互聯是通過InfiniBand交換機和路由器完成的,克服了傳統的共享I/O總線結構的種種弊端。InfiniBand具有傳輸速率高、傳輸距離長、接口功耗低以及噪聲容限高等特性,單線傳輸速率為2.5Gbps,可通過2、4或12線并行來擴展通道帶寬,峰值帶寬高達2.5、10、30Gbps(1x、4x、12x線)。2.5集群高速通信標準InfiniBandInfinBand既可作為系統內部互聯技術又可作為網絡互聯技術,既可用于構造高性能刀片服務器(BladeServer);又可用于構建具有高可用性和高可伸縮性的大規模集群系統;還可用于構建性能卓越的存儲區域網絡SAN。2.6云計算大數據集群的自組織特性自組織理論產生于20世紀七八十年代,主要研究混沌系統在隨機識別時系統內部自發地由無序變為有序、形成耗散結構的過程,被物理、化學、生物學、社會學、心理學等領域廣泛研究,其中一些研究者將自組織理論的思想、模型與計算機科學、控制理論等學科相結合,形成了一些新興的研究方向。自組織算法按照自下而上的機制進行控制,與一般采用中心控制算法不同,在進化計算、任務分配、網絡自組織演化等中得到廣泛的研究。2.6云計算大數據集群的自組織特性典型的進化算法(如蟻群算法)由個體依據簡單規則,通過正反饋、分布式協作依靠群體的力量自動尋找最優路徑;任務分配通過多智能體并行實現在離散、有限的數據結構上,尋找一個滿足給定約束條件并使目標函數值達到最大或者最小的解;人工生命進化由人工分子的非線性相互作用引起,是遠離熱平衡的相變,是自組織的研究方向之一;網絡自組織演化研究在內在機制驅動下,網絡自行從簡單向復雜、從粗糙向細致方向發展,不斷地以局部優化達到全局優化的過程。2.6云計算大數據集群的自組織特性研究自組織必然要提到耗散結構理論,比利時科學家普里高津1969年提出耗散結構理論后,這一理論就被廣泛地應用于物理、生物、化學乃至社會科學的研究中。由耗散結構引出的自組織現象更是打破了人類對自然的常規認識。耗散結構理論和協同學從宏觀、微觀及兩者的聯系上回答了系統自動走向有序結構的問題,其成果被稱為自組織理論。2.6云計算大數據集群的自組織特性出現自組織現象的系統必須是耗散結構的。耗散結構理論指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Tyrosinase-IN-40-生命科學試劑-MCE
- THRX-195518-生命科學試劑-MCE
- REGN5093-M114-生命科學試劑-MCE
- 分析微生物檢驗中的技術瓶頸問題試題及答案
- 2025年銀行從業資格考試應對方案試題及答案
- 2024年項目管理認證能力建設試題及答案
- 2025年金融理財師考試投融資技巧及試題答案
- 財務數據分析的實務問題探討與試題及答案
- 項目管理創新思維考題試題及答案
- 項目管理考試的備考指南與試題答案
- 氬弧焊培訓課件-氬弧焊焊接技術培訓
- 中建總工程師的職業基本素養
- 【房地產項目成本控制問題研究文獻綜述2300字】
- 《一般將來時》教學設計
- 小學數學-青島版五四制五年級數學上冊第七單元《比的意義》教學設計學情分析教材分析課后反思
- 幼兒園故事課件:《胸有成竹》
- GB/T 43200-2023機器人一體化關節性能及試驗方法
- 單面彩鋼酚醛復合風管施工工法
- 浙江省溫州環大羅山聯盟2022-2023學年高一下學期4月期中聯考物理試題
- 功率因素校正(PFC)電路-PFC的工作原理課件
- GB/T 10000-2023中國成年人人體尺寸
評論
0/150
提交評論