近年來,由于數據的快速增長以及用戶對計算機和存儲能力的要求越來越高,與此同時“物聯網”、“三網融合”、“智能電網”等應用快速發展也對信息系統的計算和數據管理帶來了更高的要求,云計算(cloud computing)是一項正在興起中的技術,云計算能夠改變普通用戶使用計算機的模式為用戶提供按需分配的計算能力、存儲能力及應用服務能力,目的是讓用戶使用計算資源就像使用水和電一樣方便,大大降低用戶的軟、硬件采購費用。云計算是在分布式系統、網格計算等基礎上提出的一個新概念,它面對的是超大規模的分布式環境,其核心是提供海量數據存儲以及高效率的計算能力,由此衍生出一系列的應用。但是,云計算絕不僅僅是一個計算的問題,它需要融合許許多多的技術與成果。基于云計算的數據管理、海量分布式存儲、并行計算都是云計算的重要組成部分。
1云計算
云計算是分布式處理(distributed computing)、并行處理(parallel computing)和網格計算(gridcomputing)的發展,或者說是這些計算機科學概念的商業實現。
云計算的基本原理是,通過使計算分布在大量的分布式計算機上,而非本地計算機或遠程服務器中,企業數據中心的運行將更與互聯網相似。這使得企業能夠將資源切換到需要的應用上,根據需求訪問計算機和存儲系統。
這可是一種革命性的舉措,打個比方,這就好比是從古老的單臺發電機模式轉向了電廠集中供電的模式。它意味著計算能力也可以作為一種商品進行流通,就像煤氣、水電一樣,取用方便,費用低廉。最大的不同在于,它是通過互聯網進行傳輸的。
近年來國內外各知名IT企業都在大力開發和推進云計算,如Google推出Google Apps服務,亞馬遜推遲彈性計算云(EC2)服務,IBM推出“藍云”計劃,國內浪潮推出面向云計算的“云海”操作系統,初步的云計算產品已經投入了正式的使用,但云計算還處于發展階段,與之相關的各項技術還不夠成熟。
2云數據管理技術
云計算需要對分布的、海量的數據進行處理、分析,因此,數據管理技術必需能夠高效地管理大量的數據。云計算的數據具有海量、異構、非確定性的特點,需要采用有效的數據管理技術對海量數據和信息進行分析和處理,構建高度可用和可擴展的分布式數據存儲系統,目前云計算系統中的數據管理技術主要是Google的GFS,MapReduce:MapReduce數據管理技術和亞馬遜的Dynamo。
2.1 云數據管理數據特點
云計算中數據的特點主要表現在以下幾個方面:
1)海量性。近年來,隨著物聯網等應用的興起,很多應用主要通過相當數量的傳感器來采集數據。隨著這種應用規模的擴大和在越來越多領域中的應用,數據量會呈現爆炸性增長的趨勢。如何有效地改進已有的技術和方法或提出新的技術和方法來高效地管理和處理這些海量數據將是從數據中提取信息并進一步融合、推理和決策的關鍵。
2)異構性。在云計算各種各樣的應用中,不同領域不同行業在數據獲取階段所采用的設備,手段和方式都千差萬別,取得的數據在數據形態、數據結構上也各不相同。傳感器有不同的類別,如二氧化碳濃度傳感器、溫度傳感器、濕度傳感器等,不同類別的傳感器所捕獲、傳遞的信息內容和信息格式會存在差異。以上因素導致了對數據訪問、分析和處理方式多種多樣。數據多源性導致數據有不同的分類,不同的分類具有不同的數據格式,最終導致結構化數據、半結構化數據、非結構化數據并存,造成了數據資源的異構性。
3)非確定性。云計算中的數據具有明顯的不確定性特征,主要包括數據本身的不確定性、語義匹配的不確定性和查詢分析的不確定性等。為了獲得客觀對象的準確信息,需要去粗取精、去偽存真,以便人們更全面地進行表達和推理。
2.2 GFS技術
Google文件系統(Google file system,GFS)是一個大型的分布式文件系統。它為Google云計算提供海量存儲,并且與Chubby,MapReduce以及BigTable等技術結合十分緊密,形成Google的云計算解決方案。GFS的系統架構如圖1所示。GFS將整個系統的節點分為3類角色:Client(客戶端)、Master(主服務器)和Chunk Server(數據塊服務器)。Client是GFS提供給應用程序的訪問接口,它是一組專用接口,不遵守POSIX規范,以庫文件的形式提供。應用程序直接調用這些庫函數,并與該庫鏈接在一起。Master是GFS的管理節點,在邏輯上只有一個,它保存系統的元數據,負責整個文件系統的管理,是GFS文件系統中的大腦。Chunk Server負責具體的存儲工作。數據以文件的形式存儲在Chunk Server上,Chunk Server的個數可以有多個,它的數目直接決定了GFS的規模。GFS將文件按照固定大小進行分塊,默認是64MB,每一塊稱為一個Chunk(數據塊),每個Chunk都有一個對應的索引號(Index)。
客戶端在訪問GFS時,首先訪問Master節點,獲取將要與之進行交互的Chunk Server信息,然后直接訪問這些Chunk Server完成數據存取。GFS的這種設計方法實現了控制流和數據流的分離。
Client與Master之間只有控制流,而無數據流,這樣就極大地降低了Master的負載,使之不成為系統性能的一個瓶頸。Client與Chunk Server之間直接傳輸數據流,同時由于文件被分成多個Chunk進行分布式存儲,Client可以同時訪問多個ChunkServer,從而使得整個系統I/O高度并行,系統整體性能得到提高。
圖1 GFS體系結構
2.3 BigTable技術
Google提出的BigTable技術是建立在GFS和MapReduce之上的一個大型的分布式數據庫,BigTable實際上的確是一個很龐大的表,它的規模可以超過1PB(1024TB)。它將所有數據都作為對象來處理,形成一個巨大的表格。Google給出了如下定義:BigTable是一種為了管理結構化數據而設計的分布式存儲系統,這些數據可以擴展到非常大的規模,例如在數千臺商用服務器上的達到PB(Petabytes)規模的數據,現在有很多Google的應用程序建立在BigTable之上,例如Google Earth等,而基于BigTable模型實現的Hadoop Hbase也在越來越多的應用中發揮作用。
BigTable就是一個稀疏的、多維的和排序的Map,每個Cell(單元格)由行關鍵字、列關鍵字和時間戳來進行三維定位。Cell的內容本身就是一個字符串,比如,存儲每個網頁的內容。在圖2中,反向的URL“eom.cnn.www”是這行的關鍵字,“contents”這列存儲了多個版本的網頁內容,每個版本都有一個時間戳。BigTable還提供一個用于將多個相似的列整合至一起的Column Family(列組)機制,比如,下面“anchor”這個Column Family就有“anchor:cnnsi.com”和“anchhor:my.look.ca”這個兩個列.通過Column Family這個概念,使得表可以輕松地橫向擴展。
圖2中,對于文檔的全文有一個文本列,還有一個標題列,這樣,不需要對全部的文檔文本進行分析,就可以快速地找到文檔的標題。有兩列用于錨文本。一個是anchor:other.com,包含從站點other.eom指向example.com的超鏈接的錨文本;如圖2中的單元所示,超鏈接上的文本是“example”.anchor:null.com描述了從null.com指向example.com的一個超鏈接上的錨文本是“點擊此處”.這些列都屬于錨文本列組(column group).可以向該列組中增加其他的列,以增加更多的鏈接信息。
圖2 BigTable數據模型
BigTable使用一個3層的、類似B+樹的結構存儲Tablet的位置信息,如圖3所示。
第1層是一個存儲在Chubby中的文件,它包含了Root Tablet的位置信息。Root Tablet包含了一個特殊的METADATA表里所有的Tablet的位置信息。METADATA表的每個Tablet包含了一個用戶Tablet的集合。Root Tablet實際上是METADATA表的第1個Tablet,只不過對它的處理比較特殊(Root Tablet永遠不會被分割)這就保證了Tablet的位置信息存儲結構不會超過3層。其中在Chubby中存儲著多個Root Tablet的位置信息。Metadata Tables中存儲著許多User Table的位置信息。因此當用戶讀取數據時,需先從Chubby中讀取Root Tablet的位置信息然后逐層往下讀取直至找到所需數據為止。
BigTable的負載均衡采用的是傳統的方式,BigTable在執行任務時,在任意時刻每個Tablet只被分配到一個Tablet服務器。依靠一個master服務器監視子表server的負載情況,根據所有子表服務器的負載情況進行數據遷移的,比如將訪問很熱的列表遷移到壓力輕的子表服務器上,以調節Tablet服務器的負載平衡。
圖3 Tablet的位置結構
2.4 Dynamo技術
Dynamo是一個高可用,專有的鍵值結構化存儲系統,或分布式存儲系統。它同時具有數據庫和分布式Hash表(DHT)的特征,并不直接暴露在外網,而是為Amazon Web Services(AWS)提供底層支持。目前Dynamo已經有很多實現,典型的有:Apache Cassandra,Project Voldemort,Riak。
Dynamo是采用DHT作為基本存儲架構和理念(如圖4所示),這個架構最大特點是能讓數據在環中“存儲”均勻,各存儲點相互能感知(因數據需要在環內轉發。以及相互之間進行故障探測,因此需要節點之間的通信),自我管理性強,因為它不需要Master主控點控制,無單點故障危險。
此外,Dynamo的主要優點是,它提供了使用3個參數(N,R,w),根據自己的需要來調整它們的實例。Dynamo支持對對象的不同版本進行記錄和處理,并且可以將不同版本提供給應用,供應用自己更靈活地進行合并。對象的副本數遵循(N,R,W)的規則,N個副本,如果R個讀取的一致則確定讀取成功,如果W個寫人成功則認為寫入成功,不要求全部N個都成功完成,只要R+w>N,數據的最終一致性就可以得到保障。這里,讀取比一次寫多次讀的系統(如HDFS)麻煩,但寫入變簡單了,這反映了應用的需求。
負載均衡對于Dynamo系統而言足天生的優勢,因為它采用了DHT方式將數據都均勻存儲到各個點了,所以沒有熱點,各點的數據存儲量和訪問壓力應該都是均衡的。
圖4 Dynamo架構
2.5 MapRedace技術
為了高效地利用云計算的資源,云計算采用MapReduce編程模式(如圖5所示)。作為一個新的編程模型,MapReduce將所有針對海量異構數據的操作抽象為兩種操作,即map和reduce。使用map函數將任務分解為適合于在單個節點上執行的計算子任務,通過調度執行處理后得到一個“值/對”集。而reduce函數則根據預先制訂的規則對在map階段得到的“值/對”集進行歸并操作,得到最終分析結果。MapReduce模型最為成功之處就在于,讓我們可以按照需求將針對海量異構數據的分析處理操作(無論是多么復雜)分解為任意粒度的計算子任務,并允許在多個計算節點之間靈活地調度計算以及參與計算的數據,進而達到實現計算資源和存儲資源的全局最優化的管理。另外,MapReduce方法在將map任務和reduce任務分配到相應節點時,會考慮到數據的本地性(data locality),即一般會將map/reduce安排到參與數據的存放節點或附近節點來執行。
圖5 MapReduce架構
3云數據管理技術分析
在新興的云計算數據管理領域Google的BigTable,MapReduce和亞馬遜的Dynamo技術針對云計算海量數據的問題和應用特點有了很多創新,綜合來看未來云計算數據管理主要包括以下幾個層次。其總體架構如圖6所示:
圖6云計算數據管理
如圖6所示云計算數據管理層次分為4層,分別為:數據組織與管理,數據集成與管理,分布式并行處理,數據分析。最終實現對非確定性數據的管理與集成,為用戶提供高效的查詢等服務。
1)數據組織與管理:采用分布式的存儲技術可用于大型的、分布式。的、對大量數據進行訪問的應用,類似GFS,它運行于各種類似的普通硬件上,提供容錯功能,為用戶提供高可靠、高并發和高性能的數據并行存取訪問。
2)數據集成與管理:針對數據的非確定性、分布異構性、海量、動態變化等特點,采用分布式數據管理技術,通過采用Bigtabe,Hbase等分布式數據庫技術對大數據集進行處理、分析,向用戶提供高效的服務。
3)分布式并行處理:為了高效地利用在分布式環境下的數據挖掘和處理,采用基于云計算的并行編程模式,如MapReduce,將任務自動分成多個子任務,通過映射和化簡兩步實現任務在大規模計算節點中的調度與分配。后臺復雜的并行執行和任務調度對用戶和編程人員透明。
4)數據分析:云計算的數據管理中最終需要對數據進行分析和挖掘以提供給各種應用使用,通過采用不同的數據挖掘引擎的布局及多引擎的調度策略;通過基于淺層語義分析和深層語義分析的技術,在不確定知識條件下的高效的數據挖掘,從而從大量的結構化的關系數據庫中的數據、半結構化的文本、圖形和圖像數據中提取潛在的、事先未知的、有用的、能被人理解的數據。
4 云數據管理展望
云計算作為一個新興技術,它和云數據管理面臨著一些機遇以及挑戰。“物聯網”、“三網融合”、“智能電網”等應用為云計算和云數據管理帶來了前所未有的機遇。與此同時隨著云計算越來越流行,預計有新的應用場景出現,在云數據管理方面也會帶來新的挑戰。例如,可能會出現一些需要預載大量數據集(像股票價格、天氣歷史數據以及網上檢索等)的特殊服務。從私有和公共環境中獲取有用信息引起人們越來越多的注意。這樣就產生新的問題:需要從結構化、半結構化或非結構的異構數據中提取出有用信息。可以看出云計算和云數據管理平臺服務本身在適當場景下巨大的優勢,同時還有所面臨的技術難題亟待解決。可以說,云計算和云數據管理技術還有很長的路要走。
5 總結
云計算具有廣闊的應用前景,云計算的數據具有海量、異構、非確定性的特點。面對云計算的云數據管理面臨著巨大的機遇和挑戰,本文提出采用數據組織與管理、數據集成與管理、分布式并行處理和數據分析4層的云數據管理方式也是未來面向云計算數據管理的主要方向。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.guhuozai8.cn/
本文標題:云計算和云數據管理技術
本文網址:http://m.guhuozai8.cn/html/consultation/1083972019.html