劉德松
【摘要】隨著目前互聯網數據爆炸式的增長,傳統的數據存儲和處理方式已經不能夠適應數據的增長速度,并且當今生成的大量數據多為web存儲的數據結構,其數據存儲格式不統一、數據結構多樣化,給數據的處理帶來了極大的困難。Hadoop技術的出現給大數據時代提供了一個可用的云計算平臺,其分布式文件系統實現了數據的安全備份與存儲。
【關鍵詞】大數據;Hadoop;分布式系統;數據備份
隨著計算機網絡的普及,web技術和Internet在當今世界產生大量的數據,這些海量數據遠遠超過有記載以來所產生的數據總量。以天文學為例,2000多年以來,整個天文學的數據累積到現在是140兆兆字節(jié)的信息,而位于新墨西哥州阿帕奇山頂天文臺的2.5米口徑望遠鏡進行的紅移巡天項目,在短短幾個星期內就收集到多于140兆兆字節(jié)的信息量。這些海量數據每年以超過50%的速度增長,多方面的數據顯示,我們已經進入了大數據時代。
由于數據量爆炸式增長,數據處理手段也是復雜多樣,再加上數據結構不象傳統數據那樣統一存儲,所以數據分析處理技術就顯得尤為重要。如果數據得不到很好的處理,則海量的數據就沒有任何意義,要想真正的擁有這些數據,需要解決以下幾個問題:
1、存儲系統的改變
數據量急劇增加,使得原有的存儲系統和方法不能適應新產生的大量數據的存儲要求。
2、復雜的數據結構存儲
原有存儲方案中,一種類型的數據庫只能存儲一種結構的數據。大數據的產生使得數據結構已經由原來單一的結構化數據變?yōu)榻Y構化、非結構化、半結構化數據并存的局面。這種多數據結構的數據在目前只能存放單一數據結構的數據庫中已經沒有辦法存儲了。
3、數據處理難度增大
和處理單一的數據類型不同,將多種數據結構的數據整合、分析、挖掘并從中得出有價位的信息的難度大大增加。
對伴隨大數據產生的新問題,可以逐一的解決。由于數據量極大,原來由單一媒體存儲的數據,可以通過技術構建分布式存儲系統,將大量數據分別存儲在不同的存儲系統里,不僅可以實現海量數據的存取,而且可以方便實現分布系統擴展。對于數據結構不同的問題,可以通過設置多種存儲引擎,為每種數據結構提供合適的存儲方案,來代替以前的結構化為主體的存儲方式。多種類型的數據結構給數據分析帶來極大的困難,而數據分析是數據存在的主要意義??梢酝ㄟ^對多種結構的數據進行集成,實現對在同一架構下對多種數據結構的分析。
Hadoop技術是解決上述問題的最好的實現框架。Hadoop是由Apache基金會開發(fā)的一種分布式平臺,并且是開源的,是目前應用最為廣泛的云計算軟件平臺。當前在行業(yè)中存在多種云計算的平臺,如主要有亞馬遜的EC2,谷歌的App Engine,IBM的藍云,微軟的Azure等等.Hadoop和其它的云計算平臺相比主要有以下幾個特點:
1、高性能
在數據測試中,Hadoop可以對PB數量級的大數據進行同時處理操作,并將結果提供給其它應用。研究人員做過大量測試,以2011個節(jié)點的Hadoop集群來進行基準測試,100GB的數據僅僅130秒中就完成了,這種數據處理能力是其它平臺所不能完成的。
2、高擴展性
由于Hadoop技術主要是針對大數據操作的云計算平臺,在設計的時候充分考慮到平臺的可擴展性。得用Hadoop技術可以將數據輕松上萬臺服務節(jié)點來實現數據的存儲和分析,即實現分布式的存儲和分布式的數據處理。這對傳統的關系型數據庫處理系統及非結構化數據處理技術來講是不可想象的,這種可擴展性有利于數據量更大時的集群拓展工作。
3、成本效益高
傳統的存儲方案在存儲大量重要數據的時候,往往要進行數據備份,這就對存儲系統提出很高要求,而且成本大大提高。而Hadoop可以利用其高擴展性的特性,將數據存儲到其擴展空間上來完成數據的存儲,同時,Hadoop還可以通過保存副本的技術來保證數據的完整性和容錯性。同時,由于Hadoop本身對硬件要求不高,所以它可以架構在眾多低廉的設備中,以較低的成本來完成較高的收益,使得技術成本大大降低。
4、廣泛應用
由于Hadoop計算平臺的眾多優(yōu)點,加上其技術難度不高,所以它現在成為了互聯網上應用最為廣泛的云計算平臺。目前,微軟、百度、雅虎、IBM、甲骨文、淘寶等國內外大公司都積極進行Hadoop的開發(fā)和使用,眾多公司也都利用此項技術為用戶提供了更為全面的服務。
5、開源性
和其它的開源性技術軟件一樣,Hadoop的出現給云計算平臺帶來大量業(yè)務和服務質量的大幅度提高。作為對谷歌的MapReduce和GFS技術的開源實現,其核心技術在海量網絡數據處理業(yè)務中具有明顯的優(yōu)勢。Hadoop的技術架構如表一所示
Pig:數據分析平臺,是一個基于Hadoop的針對大數據的分析平臺,它提供Pig Latin,即非結構化的數據庫查詢語言。
Chuwa:數據分析和收集系統,針對分布式存儲的大數據,它可以快速進行數據分析和指定數據收集。
Hives:數據倉庫,管理分布式存儲系統中的數據,它提供基于關系型數據庫的查詢語言,用來小范圍內的數據查詢。
Hbase:分布式列存儲數據庫,使用分布式文件系統為底層存儲。
MapReudce:數據處理和執(zhí)行環(huán)境,分布式數據處理模式設置,用于大規(guī)模的分布式存儲機器群。
HDFS:分布式文件系統,將數據存儲在不同地點或設備。
ZooKepper:分布式應用程序協調服務,提供配置維護,分布式同步等功能。
Core:一系列分布式文件系統和通用I/O的組件和接口(序列化、Java RPC和持久化數據結構)。
Avro:一種提供高效、跨語言RPC的數據序列系統,持久化數據存儲。
從Hadoop的技術框架上可以看出,它要解決的主要問題就是分布式的存儲和計算,在Hadoop分布式的文件體系中,客戶可以遠程創(chuàng)建文件夾并且在文件夾里保存和修改文件。允許用戶創(chuàng)建、刪除、復制、轉移、重命文件等。目錄結點主要負責存儲和管理整個文件系統的命名空間,對文件的安全性,分布式文件系統主要依靠存儲副本策略來實現文件的備份。在應用程序中,用戶可以指定某一個文件在分布式系統中備份的數目(默認情況下是備份三份),程序將文件備份到3個數據結點上,其中至少有一個位于不同結點架的數據結點上。用戶指定的備份數目,稱為冗余因子,其信息保存在目錄結點里。
Hadoop下的分布式文件系統,對文件的存儲做了精心設計,一個大的數據由程序分成若干塊,為了方便管理和操作,要求每一個數據塊的大小都固定(除了最后一塊外)。另外為了安全性,每個數據塊程序都會按要求進行冗余存儲。在每個目錄結點上,會定期收到每個數據結點發(fā)來的存在信號和數據塊列表,數據塊列表包括了此數據點上所有的數據塊的編號。如果目錄結點長時間沒有收到數據結點的存在信號,則認為此數據結點失效。
隨著大數據時代的到來,今后數據處理上會越來越多的應用到云計算的平臺,單一的、結構化的數據處理已經遠遠不能哆適應當今數據爆炸式的增長。做為當今最為流行的大數據處理技術,Hadoop還是有其不完善的地方,但是在此技術下的分布式文件系統及其數據的分析、處理、整合程序已經顯示出其強大的功能和適應性。在數據安全、數據提取上Hadoop技術也做了充分的考慮,使得數據存儲無后顧之憂。
參考文獻
[1]Amazon E C,Amazon Elastic Compute Cloud, Retrieved Feb, 102009.
[2]許志遠,李婷,王躍,移動互聯網白皮書;北京:工業(yè)和信息化部電信研宄院,2013
[3]Zahariev A, Google App Engine, Helsinki University of Technology, 2009.
[4]Sims K, IBM Introduces Ready-To-Use Cloud Computing Collaboration Services Get Clients Started with Cloud Computing, 2011.
[5]Shmder D,Microsoft Azure:Security in the Cloud,WindowSecurity. com (downloaded),2009.
[6]Cooper B F,Baldeschwieler E,Fonseca Ret al.,Building a Cloud for Yahoo!, IEEE Data Eng.Bull., 32 (1)2009 36-43.
[7]余利華.分布式數據存儲和處理的若干技術研究:(博士學位論文)杭州:浙江大學,2008.
[8]Zikopoulos P,Parasuraman K,Deutsch Tet al” Harness the Power of Big Data the IBM Big Data Platform, McGrawHill Professional,2012,.
[9]Sarkar D,Pro Microsoft HDInsight: Hadoop On Windows, Apress,2014
[10]Tom White著.周敏奇,王曉玲譯.Hadoop權威指南[M].北京:清華大學出版,2011.