李 亢,劉 東
(裝備學院 復雜電子系統(tǒng)仿真重點實驗室,北京 101416)
面向海量數(shù)據(jù)處理的數(shù)據(jù)密集型計算發(fā)展研究
李亢,劉東
(裝備學院 復雜電子系統(tǒng)仿真重點實驗室,北京101416)
摘要:隨著信息技術(shù)的發(fā)展和普及,當今社會的信息量呈現(xiàn)出爆炸式增長的趨勢,數(shù)據(jù)信息在無論是在量上還是在增長速率上均相當驚人,數(shù)據(jù)密集型計算應(yīng)運而生。數(shù)據(jù)密集型計算是指獲取、存儲和管理大規(guī)模數(shù)據(jù)集,并基于這些數(shù)據(jù)集進行計算和分析。概述了數(shù)據(jù)密集型計算的概念和特點,研究了數(shù)據(jù)密集型計算的數(shù)據(jù)并行和數(shù)據(jù)本地性的兩個基本原理及應(yīng)用情況,分析了數(shù)據(jù)密集型計算最新技術(shù)的國內(nèi)外研究現(xiàn)狀與發(fā)展趨勢。
關(guān)鍵詞:數(shù)據(jù)密集型計算;海量數(shù)據(jù);數(shù)據(jù)探索模式
隨著信息技術(shù)的發(fā)展和普及,當今現(xiàn)代電子戰(zhàn)爭中的信息量呈現(xiàn)出爆炸式增長的趨勢[1]。海量數(shù)據(jù)的處理問題引起了世界各國軍事領(lǐng)域?qū)<业膹V泛關(guān)注[2-6]。2014年,互聯(lián)網(wǎng)數(shù)據(jù)中心發(fā)布的研究報告(Digital universe of opportunities)中指出,到2020年全球的信息總量將從現(xiàn)有的4.4億GB增長到44億GB。數(shù)據(jù)是信息化戰(zhàn)爭中的重要戰(zhàn)略資源信息,誰能夠掌握了信息優(yōu)勢誰就奪取了未來戰(zhàn)爭的至高點。在信息化戰(zhàn)爭中,制勝的關(guān)鍵不僅取決于裝備的硬件和軟件水平,還包括海量數(shù)據(jù)處理的計算能力。
面對海量數(shù)據(jù)的高速增長,Tony Hey等在其新書《The Fourth Paradigm》[7]中,從實驗實證、理論分析和計算模擬3種研究模式基礎(chǔ)上誕生了第4種研究模式——數(shù)據(jù)探索模式(data exploration),即數(shù)據(jù)密集型科學發(fā)現(xiàn)。越來越多的領(lǐng)域?qū)<一蚩茖W家不再根據(jù)已知的規(guī)則編寫程序解決問題,而是去分析海量數(shù)據(jù),從浩如煙海的數(shù)據(jù)中尋找問題的答案,獲得理論上的突破[8-9]。數(shù)據(jù)密集型計算也就是在這個應(yīng)用背景下提出來的。
1數(shù)據(jù)密集型計算概念和特點
在有關(guān)數(shù)據(jù)密集型應(yīng)用的學術(shù)討論中,《自然》和《科學》雜志分別于2008年和2011年出版了《大數(shù)據(jù)(Big Data)》和《數(shù)據(jù)處理(Dealing with Data)》???,從互聯(lián)網(wǎng)技術(shù)、互聯(lián)網(wǎng)經(jīng)濟學、超級計算、環(huán)境科學、生物醫(yī)藥等多個方面討論海量數(shù)據(jù)處理和應(yīng)用專題[8-9]。在2007年,卡耐基·梅隆大學等相繼提出了“數(shù)據(jù)密集型超級計算(data intensive supercomputing)”和“數(shù)據(jù)密集型可擴展計算(data intensive scalable computing)”的概念。數(shù)據(jù)密集型計算是指獲取、存儲和管理大規(guī)模數(shù)據(jù)集,并基于這些數(shù)據(jù)集進行計算和分析。它通過網(wǎng)絡(luò)構(gòu)建而成的大規(guī)模計算機系統(tǒng),能夠有效實現(xiàn)數(shù)據(jù)的并行計算和分布式計算,更加注重用戶對數(shù)據(jù)快速存儲和讀取、交互式編程模型的高效便捷訪問以及靈活可靠性等方面的需求。
數(shù)據(jù)密集型計算研究的目標是解決大規(guī)模數(shù)據(jù)集和數(shù)據(jù)流的計算問題,它具有如下幾個特點[10]:
1) 通過MapReduce等分布式編程框架,支持對大型計算機系統(tǒng)的分布式計算,簡化開發(fā)應(yīng)用過程中的分布式設(shè)計,能夠使集群具有很好的可擴展性。
2) 能夠有效支持多種類型的計算任務(wù),可以利用大規(guī)模分布式集群對大規(guī)摸數(shù)據(jù)進行遍歷分析,提取出有價值的信息。
3) 通過據(jù)復制、自動選擇計算資源等容錯機制提高集群的容錯能力,可以自動地對多種故障進行容錯,降低了大規(guī)模集群開發(fā)和維護的成本。
2數(shù)據(jù)密集型計算的基本原理
數(shù)據(jù)密集型計算普遍應(yīng)用了數(shù)據(jù)并行性原理和數(shù)據(jù)本地性原理。
數(shù)據(jù)并行性原理[11]的基本思想是將數(shù)據(jù)切分成多個片段,同時對每個片段執(zhí)行相同的操作。數(shù)據(jù)并行性原理在于計算機領(lǐng)域中有非常廣泛的運用。例如Intel的SSE(StreamingSIMD Extensions,單指令多數(shù)據(jù)流擴展)指令集和GPU(Graphics Processing Unit,圖形處理器)分別在指令級和線程級利用了數(shù)據(jù)并行性。下面結(jié)合一個簡單的實例闡述數(shù)據(jù)并行原理對海量數(shù)據(jù)處理的重要意義。
假設(shè)磁盤上存儲的數(shù)據(jù)為1TB,磁盤讀取帶寬為100 MB/s。從1個磁盤上讀取,需要花費10 000 s才能讀取完1TB的數(shù)據(jù)集。然而,如果將1TB的數(shù)據(jù)集平均分布到互聯(lián)的100個磁盤上,每個磁盤只需要存儲10GB數(shù)據(jù),在這種條件下同時驅(qū)動100個磁盤通過并行計算的方式讀取數(shù)據(jù)只需要100 s,也就是說讀取數(shù)據(jù)的效率能夠提高100倍。
旅游會展行業(yè)的崛起不僅對地區(qū)經(jīng)濟起到帶動作用,更主要的一點就是它能夠?qū)Ξ數(shù)氐娜宋奈幕?、景區(qū)等進行推廣。這類會展的舉辦有特定的地區(qū)要求,首先,舉辦地需要具備符合要求的設(shè)施,其次,舉辦地區(qū)還要具備應(yīng)對突然涌入的人流、信息流、物流及資金流的實力,最后,舉辦地的當?shù)鼐用駪?yīng)該具備較高的人文素養(yǎng),避免給游客帶來較差的體驗。例如,為迎接奧運會,北京建設(shè)的鳥巢、水立方等,世博會在上海舉辦,上海建設(shè)了世博會展中心,這些設(shè)施自身就是一個旅游景點,讓游客紛沓而至。
在數(shù)據(jù)密集型計算中充分利用數(shù)據(jù)本地性原理[12]可以大幅提高系統(tǒng)的吞吐量。數(shù)據(jù)本地性原理可以簡單地概括為:盡量將任務(wù)放置在離輸入數(shù)據(jù)最近的節(jié)點運行。數(shù)據(jù)中心的網(wǎng)絡(luò)帶寬是稀缺資源,遠遠低于計算節(jié)點本地磁盤的帶寬總和。因此,應(yīng)盡可能地把計算任務(wù)調(diào)度到數(shù)據(jù)所在的計算節(jié)點上運行,這樣就可以避免消耗網(wǎng)絡(luò)帶寬從而直接處理本地磁盤中的數(shù)據(jù)。其次,機架內(nèi)兩個節(jié)點之間的帶寬遠大于跨機架的兩個節(jié)點之間帶寬,因此將任務(wù)調(diào)度到同一個機架內(nèi)進行運算是次優(yōu)的選擇??偠灾谡{(diào)度任務(wù)時應(yīng)當“移動代價很小的計算而不是移動代價昂貴的數(shù)據(jù)”[13],從而避免有限的網(wǎng)絡(luò)帶寬處于飽和狀態(tài)。
3數(shù)據(jù)密集型計算的應(yīng)用
數(shù)據(jù)密集型計算使得以前無法實現(xiàn)和想象的問題變成了現(xiàn)實,深刻地改變了人類的生產(chǎn)生活方式。如何將面對海量的數(shù)據(jù)轉(zhuǎn)換成有用的信息、知識、規(guī)律或趨勢,是數(shù)據(jù)密集型計算要面臨的重要挑戰(zhàn)。目前,在基因工程、天文計算、商業(yè)計算等眾多領(lǐng)域,數(shù)據(jù)密集型計算已經(jīng)得到了較為廣泛的應(yīng)用。
隨著基因測序技術(shù)的迅猛發(fā)展,推動了當前以數(shù)據(jù)為驅(qū)動的生物信息學研究所引導的新一代生命科學技術(shù)變革。新的基因序列不斷被發(fā)現(xiàn)導致基因數(shù)據(jù)庫也變得越來越大,美國國家生物技術(shù)創(chuàng)新中心(NCBI)維護的核苷酸序列信息的GenBank數(shù)據(jù)庫,其數(shù)據(jù)量以每10個月兩倍的速度遞增[14]。到2006年8月為止,GenBank數(shù)據(jù)庫已經(jīng)存儲了超過100 000個不同器官的650億個核苷酸序列信息,通過傳統(tǒng)計算的方式進行處理和計算如此巨大的數(shù)據(jù)集是難以實現(xiàn)的[15]。許多生物企業(yè)和科研機構(gòu)結(jié)合數(shù)據(jù)密集型計算的優(yōu)勢開展研究,例如華大基因研究中心王丙強等人對高通量測序所產(chǎn)生的大規(guī)模數(shù)據(jù)集的維護和處理,利用集群計算、云計算、網(wǎng)格計算和異構(gòu)計算等平臺進行了深入分析[16]。
在天文研究領(lǐng)域,需要對實時的存儲和處理由天文望遠鏡等傳感器源源不斷地獲取圖像數(shù)據(jù)。例如大口徑全景巡視望遠鏡LSST項目每年將產(chǎn)生圖片和目錄數(shù)據(jù)達PB級。美國射電望遠鏡陣列系統(tǒng)平方公里陣列SKA大約每秒產(chǎn)生200 GB的數(shù)據(jù)量,并且需要以千萬億次/每秒的計算速度來處理這些數(shù)據(jù)以獲得宇宙的射線圖譜。目前世界各國天文臺廣泛研究的虛擬天文臺[17]即是通過數(shù)據(jù)密集型計算的方法將全球的天文信息資源集合到一起,在此基礎(chǔ)上開展合作研究。
Google公司每天要接收近30億次的搜索請求,百度公司在每次搜索過程中要處理3 000億左右的中文網(wǎng)頁,數(shù)據(jù)量達到10~50 PB[18]。著名的社交網(wǎng)站Facebook在2011年10~12月期間,平均每天有超過2.5億張的照片上傳,照片所占用的空間超過100PB。以Amazon為代表的電子商務(wù)公司提供的系統(tǒng),如EC2、S3等,已成為數(shù)據(jù)密集型相關(guān)研究的基礎(chǔ)平臺[19]。Yahoo、阿里巴巴、騰訊等互聯(lián)網(wǎng)巨頭也涉及數(shù)據(jù)密集型研究。由于商業(yè)計算的用戶規(guī)模非常龐大,因此這需要處理海量、異構(gòu)、多變的數(shù)據(jù),需要具有通用的技術(shù),具有很大的技術(shù)挑戰(zhàn)性。
此外,數(shù)據(jù)密集型計算對其他行業(yè)也產(chǎn)生了深遠的影響,在互聯(lián)網(wǎng)技術(shù)、超級計算、環(huán)境科學、生物醫(yī)藥、經(jīng)濟學等多個領(lǐng)域都已經(jīng)展開了海量數(shù)據(jù)處理和應(yīng)用的研究專題,數(shù)據(jù)密集型計算得到了越來越廣泛的應(yīng)用[20-21]。
4數(shù)據(jù)密集型計算的發(fā)展現(xiàn)狀
信息化時代的人類社會數(shù)據(jù)規(guī)模呈現(xiàn)出爆炸式的增長態(tài)勢是,既給人們的人工作和生活帶來了便利,同時也為信息技術(shù)的發(fā)展帶來了巨大挑戰(zhàn)。為了應(yīng)對海量數(shù)據(jù)處理的挑戰(zhàn),Google、微軟、雅虎等公司根據(jù)自身的業(yè)務(wù)特點,研發(fā)了一系列數(shù)據(jù)密集型計算的核心技術(shù),極大地推進了數(shù)據(jù)密集型計算的發(fā)展,包括IBM和Google聯(lián)合開展的“藍云(Blue Cloud)計劃”、Google提供的App Engine服務(wù),以及微軟推出的典型“軟件+服務(wù)”的平臺Live Mesh和操作系統(tǒng)Azure等。美國的Carnegie Mellon大學開展的對數(shù)據(jù)密集型的超級計算方面的研究,從科學和理論上推動了數(shù)據(jù)密集型計算相關(guān)技術(shù)的發(fā)展[22]。
微軟硅谷研究院開發(fā)了DryadLINQ、Dryad和SCOPE等產(chǎn)品,提供了一個可供分布式并行計算的平臺。DryadLINQ是一種高級程序語言的編程接口,它能夠使普通程序員通過利用這個接口方便地對大規(guī)模數(shù)據(jù)集進行分布式計算,該平臺涉及了微軟公司研發(fā)的Dryad技術(shù)和LINQ技術(shù)。Dryad與MapReduce類似,它不僅僅是一種編程模型,同時能夠?qū)ν瓿蓪τ嬎闳蝿?wù)的調(diào)度。Dryad并不局限于在云計算上的應(yīng)用,它同樣可以應(yīng)用于由多核和多處理器以及異構(gòu)機群組成的數(shù)據(jù)密集型計算平臺,并且有比較好的效果。
雅虎公司研發(fā)了Pig Latin數(shù)據(jù)流語言,運行在Pig系統(tǒng)上。Pig是介于高層次的、聲明式的SQL語言與低層次、過程式的MapReduce編程之間的折中解決方案。Pig系統(tǒng)將Pig Latin程序(由一系列的操作或轉(zhuǎn)換組成)編譯成一組Hadoop作業(yè)。Pig提供了常見的數(shù)據(jù)處理操作,包括加載load、存儲store、過濾filter、分組groupby、排序sort和連接join等。Pig提供了豐富的數(shù)據(jù)模型,支持原子類型、字典、元組和bag(集合)等數(shù)據(jù)結(jié)構(gòu),并支持嵌套。
Facebook公司在開源分布式處理平臺Hadoop基礎(chǔ)上開發(fā)了數(shù)據(jù)倉庫系統(tǒng)Hive,提供了類SQL的檢索方式處理存儲在HDFS(Hadoop Distributed File System)中的海量數(shù)據(jù)。Hive數(shù)據(jù)管理系統(tǒng)按照表、分區(qū)和桶的方式組織數(shù)據(jù)。每個表對應(yīng)HDFS 的一個目錄,表的數(shù)據(jù)以序列化的方式存儲在HDFS目錄下。
除Google等IT公司,科研學術(shù)界也進行了深入研究[23],并提出了許多相關(guān)的技術(shù)。針對數(shù)據(jù)密集型應(yīng)用中數(shù)據(jù)規(guī)模龐大、難以管理的問題,學術(shù)界提出了CStore、MonetDB等基于列存儲的分析型數(shù)據(jù)庫管理系統(tǒng),和一定的緩存與索引技術(shù)相結(jié)合,CStore、MonetDB可以在不影響其他查詢效率的前提下,使得分析型查詢的效率提高10~100倍。另外,學術(shù)界分別基于開源的Hadoop技術(shù)和數(shù)據(jù)庫管理系統(tǒng)的技術(shù),從兩個方向研究數(shù)據(jù)密集型應(yīng)用中的大規(guī)模數(shù)據(jù)處理問題,代表性的成果有HadoopDB、Amazon S3的數(shù)據(jù)庫系統(tǒng)、Greenplum、Aster Data等。
5結(jié)束語
目前,數(shù)據(jù)密集型計算已經(jīng)成為深受國內(nèi)外各行各界關(guān)注的研究熱點。在國內(nèi)外針對數(shù)據(jù)密集應(yīng)用的數(shù)據(jù)處理技術(shù)研究中,基于MapReduce編程模型進行再次開發(fā)利用成為最主要的研究思路。MapReduce編程模型首先由Google為其搜索相關(guān)業(yè)務(wù)提供支持而開發(fā),目前已經(jīng)成為大多數(shù)進行海量數(shù)據(jù)處理的單位或科研機構(gòu)采用的計算基礎(chǔ),這些領(lǐng)域涉及數(shù)據(jù)庫管理系統(tǒng)、機器學習、科學數(shù)據(jù)分析、在線聚合和分布式主動處理等。
自從以Hadoop為代表的數(shù)據(jù)密集型計算平臺廣為流行之后,許多軍隊科研單位也著手在Hadoop基礎(chǔ)上開展研究,不斷地推動著數(shù)據(jù)密集型計算在軍事領(lǐng)域的應(yīng)用發(fā)展,極大促進了數(shù)據(jù)密集型計算在信息化戰(zhàn)爭中的推廣和運用。
參考文獻:
[1]Winter R.Why Are Data Warehouses Growing So Fast[EB/OL].[2008-08-23].http://www.b-eye-network.com/view/7188.
[2]Jeffrey Dean,Sanjay Ghemawat.MapReduce:Simplified data processing on large clusters.In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation[Z].2004.
[3]Michael Isard,Mihai Budiu,Yuan Yu,etal.Dryad:Distributed data-parallel programs from sequential building blocks[C]// In Proceedings of the ACM SIGOPS/EuroSys European Conference on Computer Systems,[S.l.]:[s.n.],2007.
[4]Ronnie Chaiken,Bob Jenkins,Per-Ake Larson,et al.SCOPE:Easy and efficient parallel processing of massive data sets[J].Proceedings of the VLDB Endowment (PVLDB),2008,1(2):1265-1276.
[5]Alan Gates,Olga Natkovich,Shubham Chopra,et al.Building a highlevel dataflow system on top of MapReduce:The Pig experience[J].Proceedings of the Very Large Database Endowment,2009,2(2):1414-1425.
[6]Ashish Thusoo,Joydeep Sen Sarma,Namit Jain,et al.Hive-A petabyte scale data warehouse using hadoop[C]//In Proceedings of the IEEE International Conference on Data Engineering.[S.l.]:[s.n.],2010.
[7]Tong hey.The Fourth Paradigm:Data-Intensive Scientific Discovery[M].Redmond,Washington.
[8]覃雄派,王會舉,杜小勇,等.大數(shù)據(jù)分析——RDBMS 與 MapReduce 的競爭與共生[J].軟件學報,2012,23(1):32?45.
[9]R.E.Bryant.Data-intensive supercomputing:The case for DISC[Z].Carnegie Mellon,2007.
[10]周松.面向數(shù)據(jù)密集型超級計算的基于糾刪碼的容錯存儲技術(shù)研究[D].長沙:國防科學技術(shù)大學,2010.
[11]W.Daniel Hillis,Jr.Guy L.Steele.Data parallel algorithms[J].Communications of the ACM,1986,29(12):1170-1183.
[12]Jeffrey Dean,Sanjay Ghemawat.MapReduce:Simplified data processing on large clusters[C]//In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation[S.l.]:[s.n.],2004.
[13]王鵬.海量數(shù)據(jù)處理編程模型的研究[D].北京:中國科學院計算技術(shù)研究所,2011.
[14]Clifford Lynch.How do your data grow?[J].Nature,2008,455(9):28-29.
[15]RANDAL E.Bryant.Data-Intensive supercomputing:the case for DISC[Z].CMU Technical Report,2007.
[16]王丙強.應(yīng)對生命科學的大數(shù)據(jù)挑戰(zhàn)[J].中國計算機學會通訊,2012,8(6):29-33.
[17]趙永恒,崔辰州.從虛擬天文臺到天文信息學[J].科研信息化技術(shù)與應(yīng)用,2011,2(3):3-12.
[18]Matthias Brantner,Daniela Florescu,David A.Graf,et al.Building a database on S3[C]//SIGMOD Conference[S.l.]:[s.n.],2008:251-264.
[19]LSST.Large Synoptic Survey Telescope[EB/OL].[2012-08-12].http://www.lsst.org/lsst/faq#q1.2012.
[20]Ludaseher B,Altintas I,Berkley C,et al.Scientific workflow management and the Kepler system[J].Concurrency and Computation:Practice and Experience,2005,18(10):1039-1065.
[21]Oinn T,Addis M,Ferris J,et al.Taverna:A tool for the composition and enactment of bioinformatics workflows[J].Bioinformaties,2004,20(17):3045-3054.
[22]Nurmi D,Wolski R,Grzegorczyk C,et al.Eucalyptus:A Technical Report on an Elastic Utility Computing Architecture Linking Your Programs to Useful Systems[Z].Technical Report 2008-10,UCSB Computer Science,2008.
[23]Navin S,David I,Prashant S.Multisense:Fine-grained multiplexing for steerable sensor networks[Z].Technical ReportUM-CS-2009-033,University of Massachusetts at Amherst,April 2009.
(責任編輯楊繼森)
收稿日期:2015-02-16
基金項目:國家自然科學基金資助項目(60904082)
作者簡介:李亢(1987—),男,博士研究生,主要從事大數(shù)據(jù)處理、云計算研究。
doi:10.11809/scbgxb2015.07.024
中圖分類號:TP391
文獻標識碼:A
文章編號:1006-0707(2015)07-0093-04
本文引用格式:李亢,劉東.面向海量數(shù)據(jù)處理的數(shù)據(jù)密集型計算發(fā)展研究[J].四川兵工學報,2015(7):93-96.
Citation format:LI Kang, LIU Dong.Development Research on Data-Intensive Computing Towards Massive Data Processing[J].Journal of Sichuan Ordnance,2015(7):93-96.
Development Research on Data-Intensive Computing Towards
Massive Data Processing
LI Kang, LIU Dong
(Science and Technology on Complex Electronic System Simulation Laboratory,
Equipment Academy, Beijing 101416,China)
Abstract:With the development and popularization of information technology, the amount of information in today’s society has shown explosive growth trend. It is quite amazing in the data amount either or both in the increase in the rate, and then the data-intensive computing emerged. Data-intensive computing is a data center, and the system is responsible for obtaining, maintaining continuous change data sets, and while large-scale computing and processing on these data sets. This paper showed a brief overview of the concepts and features data-intensive computing and introduced the two basic principles of data parallelism, data locality and applications of data-intensive computing, and focused on the development status of data-intensive computing and the prospect of the development trend of its technology.
Key words:data-intensive computing; massive data; development research
【信息科學與控制工程】