陸麗婷
摘 要: 大數據時代的到來,對數據的管理和存儲帶來了挑戰。為了更好地管理和利用大數據,對大數據的基本特征進行了剖析,從大數據和分析技術平臺的視角,分析了海量并行處理架構、云計算、網格計算和MapReduce這幾種重要的技術,比較了其技術特點,對運用不同的技術對大數據時代數據管理產生的作用進行了分析,討論了大數據分析工作所需要的混合環境,整合環境資源以使能夠協同工作,使得每一項技術變得更加強大有效。
關鍵詞: 大數據; 海量并行處理系統; 云計算; 網格計算; MapReduce
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2014)10-22-02
Research on technology of platform architecture under environment of big data
Lu Liting
(Dept. of Electronic Information Engineering, Wuxi City College of Vocational Technology, Wuxi, Jiangsu 214153, China)
Abstract: The advent of the era of big data brings challenges to data management and storage. In order to manage and use big data better, the basic features of the big data is analyzed. From the angle of big data and analysis on technological platform, several important technologies are analyzed, such as the massive parallel processing architecture, cloud computing, grid computing and MapReduce. The characteristics of different technologies are compared. The role of data management using different techniques is analyzed. The mixed environment which big data analysis needed is discussed. The environmental resources are integrated to work harmoniously, which makes every technology become more powerful.
Key words: big data; massive parallel processing system; cloud computing; grid computing; MapReduce
0 引言
近年來,大數據如雨后春筍般地出現在各行各業中,如何適當地使用大數據已經成為人們研究的熱點,研究人員積極地去收集和分析這些新的數據源,并深入了解這些新數據源帶來的新信息。大數據的世界需要更高層次的可擴展性,隨著數據量持續增長,原有的數據處理方式已無法應對現有的數據量,在大數據處理、分析與應用的不同層面中,有很多技術可以使用[1-2],本文對處理大數據的幾種重要技術進行了分析。
1 大數據
大數據(Big Data),是隨著計算機技術及互聯網技術的高速發展而產生的獨特數據現象,通常來說,凡是數據量超過一定大小,導致常規軟件無法在一個可接受的時間范圍內完成對其抓取、管理和處理工作的數據即可稱為大數據,包括互聯網上的網頁數據、社交網站上的用戶交互數據、物聯網中產生的活動數據等。大數據除了具有大容量、多類型和高時效等基本特征外,還具有一些區別于傳統數據源的重要特征[3]。
⑴ 大數據通常是由機器自動生成的。在新數據的產生過程中,并不會涉及人工參與,它們完全由機器自動生成,例如:引擎中內置的傳感器,即使沒有人觸摸或下達指令,它也會自動地生成關于周圍環境的數據。
⑵ 大數據通常是一種全新的數據源。例如:通過互聯網,顧客與商家進行在線交易,對顧客來說只是多了一種不同的交易渠道,這種交易和傳統的交易方式并沒有本質上的差別,但對商家來說通過對顧客在線交易時的瀏覽行為進行收集,產生了一種本質上全新的數據。
⑶ 很多大數據的設計并不友好。例如:對于社交媒體網站上的文本流,用戶不一定會使用標準的語法或語序,當發布信息時,可以獲得這些數據,但對這些數據的處理卻不那么容易。
⑷ 大數據可能并不蘊含大量的價值。傳統數據源在定義之初,要求所有的數據都是有用的,主要是由于當時的可擴展性的限制,如今,存儲空間已不再是主要的瓶頸,因此,大數據會收集所有可能使用到的信息,例如:一篇網頁日志中會含有非常重要的數據,但其中也包含了很多沒有價值的數據,對其進行提煉,從而保留有價值的部分是非常必要的。
2 駕馭大數據的幾種技術
2.1 海量并行處理系統
大數據時代的到來,傳統的數據處理方式已經不能滿足海量數據處理的實時性與實效性要求,海量并行處理系統(MPP)適應了大數據時代的要求。MPP架構由多個對稱多處理器結構SMP服務器(每個SMP服務器稱為一個節點)通過節點互聯網絡進行連接,每個節點只訪問自己的本地資源,協同工作,完成相同的任務[4]。MPP數據庫會把一個任務數據切分成不同的獨立數據塊,利用獨立存儲與CPU資源進行管理,把數據分配到不同的磁盤空間和不同的CPU單元。
[一臺過載的服務器][多臺輕負載
的服務器]
圖1 海量并行處理系統的數據存儲
例如:對于一張1T的數據表,傳統的數據庫在同一時間只能查詢一行,如果是一個擁有10個處理單元的MPP系統,它可以把這個1T的數據表切分成10份,每份100GB數據,并分配給不同的處理單元,也就是在同一時間可以同時查詢10份100GB的數據。如果需要更強大的分析能力和更快的分析速度,只要增加更多的處理單元,系統能力就會得到提高。
MPP服務器架構的并行處理能力比SMP更適合于大數據時代下的復雜的數據綜合分析與處理環境,它需要借助于支持MPP技術的關系數據庫系統來屏蔽節點之間負載平衡與調度的復雜性[5]。
2.2 云計算
云計算是硬件資源的虛擬化,大數據是云計算處理的數據之源,大數據的指數級增長使得數據的提取、存儲、處理、管理以及分析具有較高的復雜性,因此,大數據對云計算環境有著很高的依賴。
云計算是融合諸如網格計算、分布式計算、并行計算、內存計算、虛擬化等傳統計算機和網絡技術發展起來的產物,通過將計算任務分布在大量的分布式計算機上,形成類網狀的服務器集群。云計算具有較強的可擴展性,高效的交互處理能力,可以實現根據任務自由地分配資源,用戶按照需求訪問存儲空間和服務器集群,從而大大地提高了計算能力,并降低了用戶對客戶端的要求,大數據的出現,為云計算提供了發展空間,云計算作為計算資源的底層,支撐著上層的大數據處理。
目前較多運用云計算平臺(Hadoop)架構和Mapreduce模式組合應用處理海量數據,Hadoop是云計算平臺的架構,Mapreduce是一種處理海量數據的模式方法,在Hadoop架構體系中運用了Mapreduce并行編程計算模式處理海量的數據,提高了大數據分析的性能。
2.3 網格計算
某些計算過程與算法無法全部轉換成SQL,或者難以嵌入數據庫的某個自定義函數中。在這種情況下,必須把數據從傳統的分析環境中抽取出來,然后用傳統的分析工具和軟件進行分析,隨著分析師越來越多,以及分析任務越來越繁重,必須對這些服務器進行擴容或者增加更多的服務器,這些都是相當昂貴的,網格配置可以降低系統成本并提高性能,它使用大量的低成本計算機,而不是一臺或幾臺高性能的服務器。網格計算并不是只使用一臺大型服務器來管理執行不同任務的CPU和資源,相反地,不同任務被獨立地分配給不同的計算機,并讓每一臺計算機并發執行。每一臺計算機也許都會承擔原有服務器的某一部分任務,同一時間一臺計算機通常只能執行一項任務,因此,網格計算這種系統機制在提升系統性能和容量的同時,可以顯著地降低系統的總體成本。
網格計算還有一個剛出現不久的創新,即高性能的分析架構,在這個架構中,網格計算環境下的不同計算機都知道其他計算機的存在,并且不同計算機可以共享信息。這種協作方式,在同一時間充分使用了網格計算環境下的所有計算資源,使得某些大型任務可以更快地完成。
2.4 MapReduce
MapReduce是谷歌提出的一個使用簡易的軟件框架,用于大規模數據集的并行運算,基于它寫出來的應用程序能夠運行在由上千個普通機器組成的大型集群上,并以一種可靠容錯的方式并行處理上太級別的數據集[6]。
MapReduce里內置了兩個主要的處理過程:映射過程“map”和歸納過程“reduce”,MapReduce會在一系列的工作結點上并發執行這些處理過程,這類似于MPP系統,MapReduce將復雜的運行于大規模集群上的并行計算過程抽象為兩個函數(map和reduce),執行時先指定一個map函數,把輸入
[映射功能][映射(Map)][洗牌][歸納(Reduce)][調度] [結果]
圖2 MapReduce處理過程
分析師可以創建一個映射程序來搜索并分析文本記錄中的每一個詞語,然后將這些詞語從段落中解析出來;當每個工作節點都執行完映射程序,調度程序就會得到通知,之后,每個歸納節點的歸納程序開始匯總計算每個詞語出現的頻率,然后標上這個詞語出現的次數統計,映射程序的輸出結果就是詞語與計數的組合。例如,網站的在線客服人員與客戶交流的大量文本記錄被不斷地導入系統中,歸納程序的輸出物可能是“<他,10>,”“<商品,25>,”“<壞了,20>,”,這里的數字表明這個詞語在文章中出現的總次數,獲得了詞語的出現次數后,分析師就開始工作了,一些特定產品的名稱,以及像“壞了”之類的詞語都將被識別出來并進行重點研究,原來大段文字的文本數據經過處理后轉換成了一種簡單的格式,便于人們進行分析。
許多大型的數據流都包含了大量沒有長期價值的信息,部署在云端的彈性MapReduce可以根據需求實時地按需配置和訪問服務器集群,實現對大量和密集型數據任務的處理,比如日志文件分析、數據挖掘等。
3 結束語
在駕馭大數據的分析生態環境中,海量并行關系型數據庫、云計算、MapReduce都可以發揮重要的作用,可以將這三項技術整合起來協同工作,并從大數據中獲得最大的價值。例如,數據庫可以運行在云里;數據庫可以內置MapReduce功能,MapReduce也可以直接處理云計算環境內的數據,MapReduce還可以對部署在云內的數據庫的庫內數據進行處理。這三種技術可以相互影響并協同工作,每一項技術都能加強其他技術,分析環境內可以同時包含這些不同的技術與方案,使得每一項技術都變得更加強大和高效。
參考文獻:
[1] 嚴霄鳳,張德馨.大數據研究[J].計算機技術與發展,2013.168.
[2] 王珊,王會舉等.架構大數據:挑戰、現狀與展望[J].計算機學報,
2011.1741.
[3] Bill Franks.駕馭大數據[M].人民郵電出版社,2013.
[4] 劉軍.hadoop大數據處理[M].人民郵電出版社,2013.
[5] 楊池然.跟隨大數據旅行[M].機械工業出版社,2014.
[6] 周寶曜,劉偉等.大數據戰略技術實踐[M].電子工業出版社,2013.