基於雲計算的海量資料儲存模型

2021-09-30 06:11:36 字數 3245 閱讀 3132

隨著越來越多的人使用計算機,整個網路會產生數量巨大的資料,如何儲存網路中產生

的這些海量資料,已經是乙個擺在面前亟待解決的問題。現在常見的三種儲存方式是das[1]、

nas 和san,但是面對網路產生的越來越多的資料,這三種方式的缺點就明顯的暴露出來。

das 儲存方式可擴充套件性差,系統效能低,儲存分散。nas 雖然使用方便,成本低廉,但最

是儲存效能差。san 儲存效能優異,能大幅提公升網路上工作效能與資料傳輸效率,但是其

架構為封閉式架構,無法整合不同系統,且規模過大成本較高。

2006 年底,google 第一次提出了「雲[2]」的概念,為我們更好的處理網路中產生的海

量資料帶來了希望。

本文提出的基於雲計算的海量資料儲存模型,是依據雲計算的核心計算模式

mapreduce[3],並依託實現了mapreduce 計算模式的開源分布式並行程式設計框架hadoop[3],將

儲存模型和雲計算結合在一起,實現海量資料的分布式儲存[4]。

雲計算[5]是一種計算模式,也是一種全新的商業模式。雲計算(cloud computing)是分

布式處理(distributed computing)、並行處理(parallel computing)和網格計算(grid

computing)的發展或者說是這些電腦科學概念的商業實現。

雲計算[6]是隨著網路中產生的越來越多的資料而被提出的,在雲計算中,無數的軟體和

服務都置於雲中,這裡的雲是指可以自我維護和管理的虛擬計算資源。這些軟體和服務均構

築於各種標準和協議之上,可以通過各種裝置來獲得。

雲計算是一種超級的計算模式,可以把網路中的計算機虛擬為乙個資源池,將所有的計

算資源集中起來,並用特定軟體實現自動管理,使得各種計算資源可以協同工作,這就使得

處理數量巨大的資料成為了可能。

基於雲計算的海量資料的儲存

mapreduce 模式

mapreduce 是雲計算的核心計算模式,是一種分布式運算技術,也是簡化的分布式編

程模式,用於解決問題的程式開發模型,也是開發人員拆解問題的方法。

mapreduce 模式的主要思想是將自動分割要執行的問題(例如程式),拆解成map(映

射)和reduce(化簡)的方式。mapreduce 的流程如圖1 所示:

圖1 mapreduce 的處理流程

在資料被分割後通過map 函式的程式將資料對映成不同的區塊,分配給計算機機群處

理達到分布式運算的效果,在通過reduce 函式的程式將結果彙整,從而輸出開發者需要的

結果。mapreduce 借鑑了函式式程式語言的設計思想,其軟體實現是指定乙個map 函式,

把鍵值對(key/value)對映成新的鍵值對(key/value),形成一系列中間結果形式的key/value 對,

然後把它們傳給reduce(規約)函式,把具有相同中間形式key 的value 合併在一起。map 和

reduce 函式具有一定的關聯性。函式描述如表1 所示:

表1 map 函式和reduce 函式的描述

hadoop 框架

hadoop 是乙個實現了mapreduce 計算模型的開源分布式並行程式設計框架,程式設計師可以借

助hadoop 編寫程式,將所編寫的程式執行於計算機機群上,從而實現對海量資料的處理。

此外,hadoop 還提供乙個分布式檔案系統(hdfs)及分布式資料庫(hbase)用來將資料存

儲或部署到各個計算節點上。hadoop 框架如圖2 所示:

圖2 hadoop 框架

借助hadoop 框架及雲計算核心技術mapreduce 來實現資料的計算和儲存,並且將

hdfs 分布式檔案系統和hbase 分布式資料庫很好的融入到雲計算框架中,從而實現雲計算

的分布式、平行計算和儲存,並且得以實現很好的處理大規模資料的能力。

基於雲計算的海量資料儲存模型

根據資料的海量特性,結合雲計算技術,特提出基於雲計算的海量資料儲存模型,如圖

3 所示:

圖 3 基於雲計算的海量資料儲存模型

在圖 3 中,主服務控制機群相當於控制器部分,主要負責接收應用請求並且根據請求類

型進行應答。儲存節點機群相當於儲存器部分,是由龐大的磁碟陣列系統或是具有海量資料

儲存能力的機群系統,主要功能是處理資料資源的訪問。hdfs 和hbase 用來將資料儲存或

部署到各個計算節點上。hadoop 中有乙個作為主控的master,用於排程和管理其它的計算

機(將其稱之為tasktracker),master 可以執行於機群中任一台計算機上。tasktracker 負

責執行任務,必須執行於datanode 上,datanode 既是資料儲存節點,也是計算節點。master

將map 任務和reduce 任務分發給空閒的tasktracker,讓這些任務並行執行,並負責監控

任務的運**況。如果其中任意乙個tasktracker 出故障了,master 會將其負責的任務轉交

給另乙個空閒的tasktracker 重新執行。使用者不直接通過hadoop 架構讀取及hdfs 和hbase

訪問資料,從而避免了大量讀取操作可能造成的系統擁塞。使用者從hadoop 架構傳給主服務

控制機群的資訊後,直接和儲存節點進行互動進行讀取操作。

2.4 資料訪問演算法基本思想

存資料演算法基本思想為:

1 儲存資料時,將儲存資料的資訊及其附加資訊(如使用者id)傳送給主服務控制機群。

2 主服務控制機群接收到資料的資訊。

3 將接收到的資料資訊傳送給hadoop 架構。

hdfs:

mapred.job.tracker

hdfs:

1以上配置檔案只是配置了hadoop 的hdfs 中namenode 的位置、mapreduce 中的

tasktraker 的位置以及備份數量。

與雲計算系統相比,雲儲存可以認為是配置了大容量儲存空間的乙個雲計算系統。從架

構模型來看,雲儲存系統比雲計算系統多了乙個儲存層,同時,在基礎管理也多了很多與數

據管理和資料安全有關的功能,兩者在訪問層和應用介面層則是完全相同的。

4 結論

本文給出了很少一部分醫院的醫療資料,如何擴大到全市所有的醫院,還有待進一步的

研究。總體上講,雲計算領域的研究還處於起步階段,尚缺乏統一明確的研究框架體系, 還

存在大量未明晰和有待解決的問題,研究機會、意義和價值非常明顯。現有的研究大多集中

於雲體系結構、雲儲存、雲資料管理、虛擬化、雲安全、程式設計模型等技術,但雲計算領域尚

存在大量的開放性問題有待進一步研究和探索。

基於MATLAB實現的雲模型計算隸屬度

雲 或者 雲滴 是雲模型的基本單元,所謂雲是指在其論域上的乙個分布,可以用聯合概率的形式 x,u 來表示 雲模型用三個資料來表示其特徵 期望 雲滴在論域空間分布的期望,一般用符號 x表示。熵 不確定程度,由離散程度和模糊程度共同決定,一般用en表示。超熵 用來度量熵的不確定性,既熵的熵,一般用符號h...

基於雲計算平台的並行資料探勘

已有 1261 次閱讀 2010 5 7 14 26 個人分類 cloud 系統分類 科研筆記 採用雲計算技術,實現海量資料的儲存 分析 處理 挖掘,提供高可靠性 高效能的資料探勘分析。從系統架構來講,基於雲計算的並行資料探勘工具平台包括三個層次,依下而上為 1 分布式計算平台層 包括三部分功能 l...

基於海量資料的關聯規則挖掘(五)

2.1基於hash的方法 首先是基於雜湊的演算法。基於雜湊的演算法仍是將所有所有資料放入記憶體的方法。只要在計算的過程中能夠滿足演算法對記憶體的大量需求,apriori 演算法能夠很好的執行。但在計算候選項集時特別是在計算候選項對 c2時需要消耗大量記憶體。針對 c2候選項對過大,一些演算法提出用來...