韓朵朵 劉會杰 許愛雪
(石家莊鐵路職業(yè)技術(shù)學院 河北石家莊 050041)
隨著21世紀進入信息化時代,由人類日益普遍的網(wǎng)絡(luò)行為伴生的數(shù)據(jù)信息量呈爆發(fā)式增長,大數(shù)據(jù)概念也應(yīng)運而生。由于大數(shù)據(jù)包含了超出傳統(tǒng)數(shù)據(jù)庫系統(tǒng)處理能力的海量數(shù)據(jù),處理這些信息時必須采用與傳統(tǒng)數(shù)據(jù)處理方式不同的解決方案。目前,圍繞大數(shù)據(jù)的相關(guān)研究已經(jīng)大量存在,主要集中在對數(shù)據(jù)的快速捕獲、管理、存儲和分析等關(guān)鍵問題的解決上。其中,由Apache軟件基金研發(fā)的Hadoop技術(shù)在大數(shù)據(jù)分析處理領(lǐng)域占據(jù)了主流地位。
本文介紹了大數(shù)據(jù)的概念及Hadoop生態(tài)系統(tǒng)的組成框架,重點從大數(shù)據(jù)平臺中面臨的數(shù)據(jù)存儲、分析、管理及安全等關(guān)鍵問題入手,對基于Hadoop生態(tài)系統(tǒng)的解決方案進行了分析綜述,并結(jié)合實際指出基于Hadoop的大數(shù)據(jù)平臺的研究和應(yīng)用發(fā)展方向。
當數(shù)據(jù)量超過一定規(guī)模,致使常規(guī)軟件不能在可接受的時長內(nèi)完成對數(shù)據(jù)的捕獲、管理和處理工作時,這些數(shù)據(jù)即可稱為大數(shù)據(jù)(big data)。大數(shù)據(jù)是物理世界在數(shù)字空間的映射,通過大數(shù)據(jù)平臺有效組織各類數(shù)據(jù),模擬物理世界屬性,即可用來分析和服務(wù)現(xiàn)實世界,這也是大數(shù)據(jù)所追求的最終目的。大數(shù)據(jù)具有典型的“4V”特征,分別為:
(1)體量(Volume):數(shù)據(jù)量級高,從TB量級躍增到PB量級,并持續(xù)增高。
(2)速度(Velocity):處理速度快,對于時間敏感的數(shù)據(jù)處理,一般要在秒級給出分析結(jié)果,時間太長就失去價值。比如發(fā)現(xiàn)詐騙事件,數(shù)據(jù)就必須要及時反饋給相應(yīng)機構(gòu)。
(3)多樣性(Variety):數(shù)據(jù)結(jié)構(gòu)復雜,包括各種結(jié)構(gòu)化、非結(jié)構(gòu)化和半結(jié)構(gòu)化的數(shù)據(jù),類型涵蓋視頻、文本、音頻、圖片和日志數(shù)據(jù)等。
(4)價值(Value):價值密度低但存在著可觀的商業(yè)價值,例同監(jiān)控視頻,連續(xù)不停頓的畫面里,有價值的可能僅有幾秒。
目前,遍觀國內(nèi)外現(xiàn)有的各種模式的大數(shù)據(jù)解決方案,由Apache軟件基金研發(fā)的Hadoop技術(shù)迅速崛起,并逐步演化形成了一個生態(tài)系統(tǒng),奠定了其在大數(shù)據(jù)分析處理領(lǐng)域的主流地位。Hadoop生態(tài)系統(tǒng)基本框架如圖1所示[1],其中最核心的是底層的Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System,HDFS)和MapReduce編程框架,除此之外,還包括與之緊密關(guān)聯(lián)的HBase數(shù)據(jù)庫集群和ZooKeeper集群。需要指出的是,Hadoop生態(tài)系統(tǒng)中有的技術(shù)并不是由Apache組織提出的。例如HadoopDB屬于Yale大學,HOP屬于Google,Ganglia屬于UC Berkeley。
圖1 Hadoop生態(tài)系統(tǒng)基本框架
構(gòu)建一個能夠有效支撐大數(shù)據(jù)應(yīng)用的平臺,需要著重考慮幾個關(guān)鍵問題:大數(shù)據(jù)的存儲、大數(shù)據(jù)的分析、大數(shù)據(jù)的管理以及大數(shù)據(jù)的安全,而Hadoop系統(tǒng)在這些問題的處理上都有著較明顯的優(yōu)勢。
據(jù)統(tǒng)計,當前中國的數(shù)據(jù)量占了全球數(shù)據(jù)量的約13%,到2020年全球數(shù)據(jù)將可能達到40ZB,這些數(shù)據(jù)的類型以半結(jié)構(gòu)化和非結(jié)構(gòu)化為主,而傳統(tǒng)的關(guān)系型數(shù)據(jù)庫系統(tǒng)比如SQL Server、Oracle等僅適于處理結(jié)構(gòu)化數(shù)據(jù),對于半結(jié)構(gòu)和非結(jié)構(gòu)化數(shù)據(jù)的存儲還需要開發(fā)尋找其他合適的新系統(tǒng)。這類系統(tǒng)需具有高性價比、高可靠性和容量可橫向擴展等特點,并且滿足分布式計算的需求。為此,Google設(shè)計了以GFS為基礎(chǔ)的Bigtable分布式數(shù)據(jù)存儲系統(tǒng),并將其應(yīng)用到公司內(nèi)部多個項目中,比如存儲網(wǎng)絡(luò)爬蟲大數(shù)據(jù)、用戶Web請求的日志大數(shù)據(jù)等。HP利用StoreAll解決非結(jié)構(gòu)化大數(shù)據(jù)的存儲問題,可在單一命名空間內(nèi)支持文件存儲的同時支持對象存儲,并且總數(shù)據(jù)量可達16PB。
目前,Hadoop生態(tài)系統(tǒng)是大數(shù)據(jù)研究中最熱門的解決方案之一,其通過HDFS分布式文件系統(tǒng)來解決非結(jié)構(gòu)化數(shù)據(jù)的存儲,通過HBase項目來解決結(jié)構(gòu)化數(shù)據(jù)或半結(jié)構(gòu)化數(shù)據(jù)。HDFS類同于Google的GFS,以Master/Slave形式為架構(gòu),以“一次寫入,多次讀取”訪問方式為核心設(shè)計思想,將需要存儲的大文件進行分割,形成Block數(shù)據(jù)塊分別存放,從而完成大數(shù)據(jù)的存儲。對大數(shù)據(jù)進行存儲主要依賴于并行數(shù)據(jù)庫,通過對數(shù)據(jù)的各個節(jié)點并行來實現(xiàn)對數(shù)據(jù)庫執(zhí)行的目的,但并行數(shù)據(jù)庫在讀寫并行上存在一定制約,所以大家一般盡可能采用移動終端對信息進行存儲,而不使用并行數(shù)據(jù)庫。
大數(shù)據(jù)不同于海量數(shù)據(jù),簡單來說,大數(shù)據(jù)=海量數(shù)據(jù)+復雜類型的數(shù)據(jù)。在生態(tài)系統(tǒng)出現(xiàn)之前,商業(yè)并行數(shù)據(jù)庫是對海量數(shù)據(jù)進行分析的主要手段,這些并行數(shù)據(jù)庫主要采用的是shared-nothing架構(gòu),獨立設(shè)置網(wǎng)絡(luò)中每個Slave節(jié)點的本地CPU、本地存儲、本地內(nèi)存和本地數(shù)據(jù)庫管理系統(tǒng),保持各個Slave節(jié)點間的獨立性。作為所有Slave節(jié)點的管理員,Master節(jié)點負責將客戶端提交的SQL查詢?nèi)蝿?wù)進行透明化分解,分配給多個Slave節(jié)點并行執(zhí)行。
借助數(shù)據(jù)庫領(lǐng)域成熟領(lǐng)先的優(yōu)化技術(shù),如索引、數(shù)據(jù)壓縮等,并行數(shù)據(jù)庫在結(jié)構(gòu)化數(shù)據(jù)分析上表現(xiàn)出超強的性能優(yōu)勢。但是隨著以半結(jié)構(gòu)化和非結(jié)構(gòu)化為主的大數(shù)據(jù)出現(xiàn),并行數(shù)據(jù)庫的先天不足就開始顯現(xiàn)出來,主要表現(xiàn)在可擴展性差,容錯性能低和同構(gòu)性不足幾個方面。而最初就是針對大數(shù)據(jù)特征提出的Hadoop生態(tài)系統(tǒng),彌補了在半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)處理上的這些不足,并且隨著生態(tài)系統(tǒng)性能的不斷優(yōu)化調(diào)整,Hadoop的這種優(yōu)勢會越來越明顯。
Hadoop主要由兩部分組成:底部是HDFS,負責存儲工作,上部是MapReduce引擎,負責對大數(shù)據(jù)集進行并行處理。MapReduce是一種簡化的分布式編程模式,核心思想是Map和Reduce,即任務(wù)的分解與結(jié)果的匯總,該種方式編寫的程序會被分布到一個超大集群中的若干個普通機器上并行執(zhí)行。作為影響MapReduce執(zhí)行效率的主要因素,調(diào)度算法的研究至關(guān)重要。目前常用的調(diào)度算法,如MapReduce提供的fair調(diào)度、FIFO調(diào)度及Chen Quan等人提出的“自適應(yīng)調(diào)度”算法,其主要思想和方法依然局限在分布式系統(tǒng)、操作系統(tǒng)或網(wǎng)格計算中。近些年針對MapReduce的計算模型的改進研究,主要集中在數(shù)據(jù)集的掃描、分解和歸約等方面的并行性上,通過結(jié)合具體應(yīng)用來比較不同方法適用的數(shù)據(jù)類型及性能優(yōu)劣。
一個Hadoop大數(shù)據(jù)解決方案只有有了一體化的管理系統(tǒng)才算得上是完備的,因為這個系統(tǒng)解決方案涉及太多方面,比如復雜的數(shù)據(jù)類型和數(shù)據(jù)來源、大量機器構(gòu)成的Hadoop集群和其它小集群、大量參數(shù)的配置和優(yōu)化、多個作業(yè)的部署和運行等[5]。離開了專門的管理工具或系統(tǒng),系統(tǒng)就難以得到提升,系統(tǒng)推廣也就非常受限了。所以企業(yè)在利用Hadoop生態(tài)系統(tǒng)構(gòu)建平臺后,均會開發(fā)專門的管理工具或系統(tǒng)。
實際上,每個生態(tài)系統(tǒng)項目均會帶有一些基本工具,以HDFS和Hadoop MapReduce為例,有Eclipse插件、Web接口和Shell接口,但是功能尚不完善[5]。目前,Hadoop大數(shù)據(jù)管理工作中應(yīng)用較為廣泛的是Sqoop和Ganglia兩個項目,Sqoop主要實現(xiàn)的是Hadoop生態(tài)系統(tǒng)內(nèi)外數(shù)據(jù)轉(zhuǎn)換的工作,Ganglia可以Web的方式來實現(xiàn)監(jiān)控Hadoop集群[9]。
在開發(fā)之初,Hadoop優(yōu)先考慮的是功能,安全問題并未得到過多考慮,而實際上大數(shù)據(jù)中可能包含大量的用戶敏感數(shù)據(jù)和隱私信息,隨著Hadoop大數(shù)據(jù)平臺應(yīng)用日益廣泛,企業(yè)不得不考慮如何保護這些敏感數(shù)據(jù),尤其是想將大數(shù)據(jù)放進公用云上。因此,針對Hadoop平臺可能存在的安全隱患,開發(fā)者們通過加強平臺的身份驗證、訪問授權(quán)、數(shù)據(jù)加密和操作審計等管控手段,對應(yīng)不同應(yīng)用場景設(shè)計出實用化的安全管控產(chǎn)品。
2009年,基于Kerberos的用戶身份驗證方案的提出,正式拉開了Hadoop平臺安全管控研究工作的大幕。2013年,Intel牽頭啟動了開源項目“Project Rhino”,致力于增強Hadoop平臺安全管控能力。到目前為止,通過引入Kerberos、配置防火墻、基礎(chǔ)的HDFS權(quán)限和ACLs,已經(jīng)形成了一套能滿足眾多組件且能橫向擴展的安全管控基本解決方案。但其實,要實現(xiàn)Kerberos與Hadoop服務(wù)的完美整合,還需要做一系列復雜的配置工作,導致其易用性表現(xiàn)較差,安全問題依舊有待得到更好地解決。
大數(shù)據(jù)的戰(zhàn)略意義在于從海量的數(shù)據(jù)中挖掘出有用的價值。譬如企業(yè)進行大數(shù)據(jù)分析,期望從中發(fā)現(xiàn)隱含的商業(yè)價值,以便更好地提高產(chǎn)品和服務(wù)質(zhì)量。所以目前,Hadoop在商業(yè)領(lǐng)域應(yīng)用較多且取得了很大創(chuàng)新,商業(yè)應(yīng)用更加注重處理的效率和運維的成本。其中,Cloudera CDH,Hortonworks和MapR 3家公司發(fā)行的Hadoop商業(yè)版本較為流行,通過對Apache的Hadoop進行打包、改進,為確保生態(tài)圈的所有軟件協(xié)調(diào)工作提供技術(shù)支持。
在國外,作為大數(shù)據(jù)市場的積極推動者,Google,IBM,Yahoo等巨頭也都是Hadoop的最大的應(yīng)用者。藍云Bluemix是IBM構(gòu)建云框架的基礎(chǔ)設(shè)施,基于Apache Hadoop構(gòu)建的IBM InfoSphere Biginsights可提供大規(guī)模的靜態(tài)數(shù)據(jù)分析功能,實時數(shù)據(jù)則可通過Infosphere Streams采用內(nèi)存計算方式分析。Amazon基于Hadoop構(gòu)建了A9.com,以此實現(xiàn)強大的商品搜索索引功能。Facebook使用Hadoop存儲內(nèi)部日志與多維數(shù)據(jù),基于Hive等進行日志分析和數(shù)據(jù)挖掘。Twitter的微博數(shù)據(jù)、日志文件和中間數(shù)據(jù)的存儲依靠Hadoop的HDFS完成,并采用Cloudera's CDH2系統(tǒng)來存儲壓縮數(shù)據(jù)[12]。
在國內(nèi),越來越多的企業(yè)加入到應(yīng)用和研究Hadoop的行列,主要包括傳統(tǒng)企業(yè)如百度、淘寶、騰訊、網(wǎng)易等互聯(lián)網(wǎng)公司以及中國移動、華為、農(nóng)業(yè)銀行等。阿里巴巴是國內(nèi)首先使用Hadoop的公司之一,百度是目前Hadoop的最大使用者之一,每天處理的數(shù)據(jù)量高達9000TB,針對自身需求百度對Hadoop進行了改進,開發(fā)了HCE(HadoopC++)系統(tǒng)以及自己的日志分析平臺、數(shù)據(jù)倉庫系統(tǒng)等,為公司業(yè)務(wù)提供分析計算和存儲服務(wù)[12]。騰訊基于Hadoop和Hive構(gòu)建了分布式數(shù)據(jù)倉庫TDW(Tencent distributed Data Warehouse),克服了傳統(tǒng)數(shù)據(jù)庫可控性差,無法線性擴展的缺陷,目前改進為基于Spark框架。中國移動在通信領(lǐng)域廣泛使用Hadoop,利用HDFS實現(xiàn)數(shù)據(jù)分布式存儲,利用MapReduce進行分布式數(shù)據(jù)處理。華為構(gòu)建了FusionInsight大數(shù)據(jù)平臺,通過實時數(shù)據(jù)處理引擎,以事件驅(qū)動模式有效地解決了高速事件流的實時計算問題。
目前,大數(shù)據(jù)和Hadoop生態(tài)系統(tǒng)都處于一個快速發(fā)展的時期,相互影響和促進。而Hadoop生態(tài)系統(tǒng)符合大數(shù)據(jù)本質(zhì)特點,其成員具有多樣性、靈活性、擴展性,尤其是對中小型用戶具有很大的吸引力,能按企業(yè)業(yè)務(wù)需求進行比較自由的組合,相信利用Hadoop生態(tài)系統(tǒng)構(gòu)建小企業(yè)的大數(shù)據(jù)平臺將會成為一個趨勢。
另外,雖然圍繞大數(shù)據(jù)平臺的研究已經(jīng)大量存在,但還有一些問題有待進一步解決:一是技術(shù)推廣,二是標準和法規(guī)的制定,三是應(yīng)用系統(tǒng)(平臺)之間的兼容和整合,四是提高數(shù)據(jù)應(yīng)用能力,相信隨著研究的不斷深入,這些問題都可以慢慢得到解決或改進。