互聯網如何海量存儲數據

爆料派
在互聯網時代,由于海量數據處理操作非常頻繁,很多研究者在從事支持海量數據處理的編程模型方面的研究。

以互聯網為計算平臺的云計算,將會更廣泛地涉及海量數據處理任務。海量數據處理指的是對大規(guī)模數據的計算和分析,通常數據的規(guī)??梢赃_到TB甚至PB級別。在互聯網時代,互聯網數據的統計和分析很多是海量數據級別的,一個典型的例子就是搜索引擎。由于數據量非常大,一臺計算機不可能滿足海量數據處理的性能和可靠性等方面的要求。以往對于海量數據處理的研究通常是某種并行計算模型和計算機集群系統。并行計算模型可以支持高吞吐量的分布式批處理計算任務和海量數據,計算機集群系統則在通過互聯網連接的機器集群上建立一個可擴展的可靠的計算環(huán)境。

在互聯網時代,由于海量數據處理操作非常頻繁,很多研究者在從事支持海量數據處理的編程模型方面的研究。例如,Remzi等人在1999年設計了River編程模型,開發(fā)人員可以基于該編程模型開發(fā)和執(zhí)行計算任務。River編程模型的設計目的就是使得大規(guī)模計算機集群的編程和計算更加容易,并且獲得極佳的計算性能。River編程模型有兩個核心設計特性:高性能的分布式隊列和一個存儲冗余機制。因此,River需要對磁盤和網絡的數據傳輸進行非常精心的調度。當今世界最流行的海量數據處理的編程模型可以說是由Google公司的Jeffrey Dean等人所設計的MapReduce編程模型。MapReduce編程模型將一個任務分成很多更細粒度的子任務,這些子任務能夠在空閑的處理節(jié)點之間調度,使得處理速度越快的節(jié)點處理越多的任務,從而避免處理速度慢的節(jié)點延長整個任務的完成時間。下面我們將介紹MapReduce框架的工作原理和設計原則,從而加深讀者對海量數據處理系統的理解。

MapReduce框架從Lisp及很多其他類似的語言獲得靈感,研究人員發(fā)現大多數分布式運算可以抽象為Map和Reduce兩個步驟,從而實現可靠、高效的分布式應用。Map步驟負責根據輸入的key/value(鍵值)對生成中間結果,中間結果同樣采用key/value對的形式。Reduce步驟則將所有的中間結果根據key進行合并,然后生成最終結果。開發(fā)者只需要實現Map和Reduce函數的邏輯,然后提交給MapReduce遠行環(huán)境,計算任務便會在由大量計算機組成的集群上被自動、并行地調度執(zhí)行。運行環(huán)境負責將輸入數據進行分割、調度任務、自動處理運行過程中的機器失效,以及協調不同節(jié)點之間的數據通信。

MapReduce的運行環(huán)境由兩種不同類型的節(jié)點組成:Master和Worker。Worker,負責數據處理,Master,負責任務調度及不同節(jié)點之間的數據共享。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論