鄭緯民
清華大學(xué)計算機科學(xué)與技術(shù)系 北京 100084
從系統(tǒng)角度審視大數(shù)據(jù)計算
鄭緯民
清華大學(xué)計算機科學(xué)與技術(shù)系 北京 100084
大數(shù)據(jù)計算是實現(xiàn)大數(shù)據(jù)“巨大價值”的必要手段,而計算系統(tǒng)是大數(shù)據(jù)計算的有效載體。試著從系統(tǒng)角度審視大數(shù)據(jù)計算,透過大數(shù)據(jù)的體量巨大、速度極快、模態(tài)多樣、真?zhèn)坞y辨等宏觀特征,針對批量計算、流式計算、大圖計算等計算形式,分別探討大數(shù)據(jù)計算的典型特征,論述了這些特征給大數(shù)據(jù)計算系統(tǒng)的設(shè)計與實現(xiàn)帶來的技術(shù)挑戰(zhàn),進而梳理了為了應(yīng)對這些挑戰(zhàn)所取得的研究成果,最后從系統(tǒng)角度指出未來大數(shù)據(jù)計算可能的一些研究方向。
大數(shù)據(jù)計算;批量計算;流式計算;大圖計算;系統(tǒng)實例
大數(shù)據(jù)已成為當(dāng)前社會各界關(guān)注的焦點[1~4]。從一般意義上講,大數(shù)據(jù)是指在可容忍的時間內(nèi),無法用現(xiàn)有信息技術(shù)和軟硬件工具對其進行感知、獲取、管理、處理和服務(wù)的數(shù)據(jù)集合。大數(shù)據(jù)呈現(xiàn)出多種鮮明特征[3~8],在數(shù)據(jù)量方面,體量巨大,當(dāng)前全球所擁有的數(shù)據(jù)總量已經(jīng)遠遠超過歷史上的任何時期,更為重要的是,數(shù)據(jù)量的增加速度呈現(xiàn)出倍增趨勢;在數(shù)據(jù)速率方面,速度極快,數(shù)據(jù)產(chǎn)生、傳播的速度更快,在不同時空中流轉(zhuǎn),呈現(xiàn)出鮮明的流式特征,更為重要的是,數(shù)據(jù)價值的有效時間急劇減少,也要求越來越高的數(shù)據(jù)計算和使用能力;在數(shù)據(jù)復(fù)雜性方面,模態(tài)多樣,種類繁多,在編碼方式、存儲格式、應(yīng)用特征等多個方面也存在多層次、多方面的差異性,結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)并存;在數(shù)據(jù)價值方面,價值稀疏,真?zhèn)坞y辨,但價值總量巨大,隨著數(shù)據(jù)規(guī)模的不斷增大,隱含于大數(shù)據(jù)中的知識也隨之增多,但這些知識隱含程度很深,對發(fā)現(xiàn)這些知識的方式、方法提出了更高的要求。此外,大數(shù)據(jù)還呈現(xiàn)出個性化、不完備化、交叉復(fù)用等諸多鮮明特征。
大數(shù)據(jù)蘊含大信息,大信息提煉大知識,大知識將在更高的層面、更廣的視角、更大的范圍幫助用戶提高洞察力、提升決策力,將為人類社會創(chuàng)造前所未有的大價值。但與此同時,這些總量極大的價值往往隱藏在大數(shù)據(jù)中,表現(xiàn)出價值密度極低、分布極其不規(guī)律、信息隱藏程度極深、真?zhèn)涡畔⒔豢椈旌习l(fā)現(xiàn)有用價值極其困難的鮮明特性,這些特征必然為大數(shù)據(jù)的計算帶來前所未有的挑戰(zhàn)和機遇。
大數(shù)據(jù)計算是發(fā)現(xiàn)信息、挖掘知識、滿足應(yīng)用的必要途徑,也是大數(shù)據(jù)從收集、傳輸、存儲、計算到應(yīng)用等整個生命周期中最關(guān)鍵、最核心的環(huán)節(jié),只有有效的大數(shù)據(jù)計算,才能滿足大數(shù)據(jù)的上層應(yīng)用需要,才能挖掘出大數(shù)據(jù)的內(nèi)在價值,才能使大數(shù)據(jù)具有意義。大數(shù)據(jù)計算系統(tǒng)是實現(xiàn)大數(shù)據(jù)科學(xué)計算的基礎(chǔ)平臺。對于規(guī)模巨大、價值稀疏、結(jié)構(gòu)復(fù)雜、時效性強的大數(shù)據(jù),其計算亦面臨不同于傳統(tǒng)數(shù)據(jù)計算的諸多新挑戰(zhàn),如計算復(fù)雜度高、任務(wù)周期長、數(shù)據(jù)實時性強、計算通用性差等。大數(shù)據(jù)及其計算的這些挑戰(zhàn)對大數(shù)據(jù)計算系統(tǒng)的系統(tǒng)架構(gòu)、計算框架、處理方法等提出了新的挑戰(zhàn)。同時,大數(shù)據(jù)時代出現(xiàn)了很多新的應(yīng)用需求,如面向社交媒體的大圖關(guān)系分析與發(fā)現(xiàn),需要結(jié)合具體的應(yīng)用場景,開展針對性的關(guān)于計算模式的研究。
為了滿足和適應(yīng)大數(shù)據(jù)計算的需要,隨著大數(shù)據(jù)及相關(guān)技術(shù)的全面和深入發(fā)展,大數(shù)據(jù)計算模式也呈現(xiàn)出多樣化、專業(yè)化特征,以滿足不同領(lǐng)域大數(shù)據(jù)應(yīng)用范式的要求。本文首先針對大數(shù)據(jù)計算的3種代表性模式進行了深入的分析,主要包括大數(shù)據(jù)批量計算、流式計算和交互計算,對其中各計算模式的基本概念、典型特征和技術(shù)挑戰(zhàn)進行了系統(tǒng)的歸納和分類。其次,分別針對這3種計算模式中當(dāng)前具有廣泛代表性的系統(tǒng)進行了具體實例分析。再次,從系統(tǒng)的角度,對3種計算模式的未來研究方向和重點進行了初步分析。最后,對全文進行了總結(jié)。
大數(shù)據(jù)計算模式主要包括批量計算、流式計算、交互計算3種。其中,交互計算需要在計算過程中與用戶進行互動,才能進行后續(xù)的計算動作,可以把交互計算看作批量計算的一種特殊形式。本文不再對交互計算進行深入分析。大圖計算本屬于批量計算范疇,但隨著互聯(lián)網(wǎng)應(yīng)用的發(fā)展,其重要性日益凸顯,并且因其各個節(jié)點的關(guān)聯(lián)緊密性而具有不同于其他普通批量計算的顯著特征。本文對大圖計算進行單獨討論。
2.1 批量計算的特征及挑戰(zhàn)
大數(shù)據(jù)批量計算[9~13](big data batch computing)是大數(shù)據(jù)計算的一種主要計算模式,當(dāng)前階段,大多數(shù)應(yīng)用場景均通過批量計算模式實現(xiàn)。同時,批量計算也可以同其他計算模式進一步結(jié)合起來,以完成對數(shù)據(jù)的進一步處理。在大數(shù)據(jù)批量計算環(huán)境中,其計算架構(gòu)如圖1所示。數(shù)據(jù)通過多個數(shù)據(jù)源進行收集,按照與應(yīng)用場景所需要的方式進行組織,在各種外存存儲介質(zhì)(如硬盤、磁帶等)上靜態(tài)地存儲起來。當(dāng)需要進行數(shù)據(jù)計算時,開啟數(shù)據(jù)的計算過程,進行數(shù)據(jù)的集中處理,數(shù)據(jù)被處理完后,計算過程也隨之結(jié)束。在數(shù)據(jù)的計算過程中,數(shù)據(jù)的計算順序、計算速度等各種因素可以有效控制,也可以有選擇地、重復(fù)地進行部分數(shù)據(jù)的重計算。數(shù)據(jù)的計算結(jié)果是確定、準確、全面、可重現(xiàn)的,但數(shù)據(jù)的計算時延往往較長,往往在數(shù)分鐘到數(shù)小時之間??梢姡瑢τ谙却鎯笥嬎愕膶崟r性要求不高,同時,對于數(shù)據(jù)的準確性、全面性更為重要的應(yīng)用場景,批量計算模式更加適合。
圖1 大數(shù)據(jù)批量計算架構(gòu)
大數(shù)據(jù)批量計算場景通常呈現(xiàn)出以下典型特征及挑戰(zhàn)。
(1)數(shù)據(jù)體量巨大
數(shù)據(jù)量從TB級別躍升到PB級別,甚至更高。數(shù)據(jù)往往以靜態(tài)的形式在硬盤等外部存儲介質(zhì)上永久存儲,一次寫入,很少再進行更新,存儲時間長,可以重復(fù)多次利用,但很難對其進行移動和備份。面向如此體量的數(shù)據(jù),需要在數(shù)據(jù)的組織方式、計算形式等方面根據(jù)具體的應(yīng)用場景,構(gòu)建一個高效、分布式的大數(shù)據(jù)計算系統(tǒng),以滿足對相關(guān)數(shù)據(jù)的并行、分布式處理要求。
(2)數(shù)據(jù)精確度高
批量數(shù)據(jù)通常是從應(yīng)用中沉淀下來的,對于了解上次應(yīng)用的各種內(nèi)在關(guān)系、潛在邏輯以及預(yù)測未來發(fā)展都很關(guān)鍵。需要對其中所有數(shù)據(jù)進行全量式的計算,數(shù)據(jù)處理結(jié)果的精度要求較高。為了滿足如此高的數(shù)據(jù)精度,需要在數(shù)據(jù)處理效率和數(shù)據(jù)處理結(jié)果精度等方面進行權(quán)衡,在數(shù)據(jù)的單次處理和再現(xiàn)方面進行權(quán)衡。
(3)數(shù)據(jù)價值稀疏
在數(shù)據(jù)的收集過程中,往往需要盡可能全面、密集地進行數(shù)據(jù)收集,避免任何有價值數(shù)據(jù)的遺失。隨著數(shù)據(jù)收集工具和方法的不斷進步,數(shù)據(jù)收集面和收集頻率的不斷增廣和增加,數(shù)據(jù)價值的稀疏程度也急劇增強。因此,需要通過合理的計算架構(gòu)和高效的數(shù)據(jù)處理算法才能從大量的數(shù)據(jù)中抽取少數(shù)有用的價值。此外,批量數(shù)據(jù)處理往往比較耗時,而且不提供用戶與系統(tǒng)的交互手段,當(dāng)發(fā)現(xiàn)處理結(jié)果和預(yù)期結(jié)果有很大差別時,會浪費很多時間。因此,批量數(shù)據(jù)處理適合大型的相對比較成熟的應(yīng)用場景。數(shù)據(jù)價值稀疏性特征使得在大數(shù)據(jù)計算系統(tǒng)中,需要構(gòu)建一個高效、精準、面向特定應(yīng)用和領(lǐng)域的數(shù)據(jù)處理模式,在極其稀疏甚至稀疏程度不斷增加的應(yīng)用場景下,能快速發(fā)現(xiàn)并挖掘出其中所存在的數(shù)據(jù)價值。
2.2 流式計算的特征及挑戰(zhàn)
大數(shù)據(jù)流式計算[14~18](big data stream computing)是大數(shù)據(jù)計算的另一種重要計算模式,特別是在數(shù)據(jù)時效性、實時性需要不斷增加的應(yīng)用場景不斷增多的情況下,其重要性日益凸顯。在大數(shù)據(jù)流式計算環(huán)境中,其計算架構(gòu)如圖2所示。數(shù)據(jù)以數(shù)據(jù)流的形式,通過多個不同的數(shù)據(jù)源實時到達大數(shù)據(jù)流式計算平臺,然后,利用數(shù)據(jù)流圖所描述的處理過程被在線處理,并實時產(chǎn)生結(jié)果,滿足相關(guān)上層應(yīng)用系統(tǒng)的需要。整個數(shù)據(jù)的處理過程往往在毫秒級的時間范圍內(nèi)完成,原始數(shù)據(jù)、中間狀態(tài)、處理結(jié)果等數(shù)據(jù)根據(jù)具體應(yīng)用場景的需要,不全部保存,只是選擇性地存儲。描述用戶特定應(yīng)用的數(shù)據(jù)流圖一旦提交到系統(tǒng)中,將會永遠在線運行,實時對輸入的數(shù)據(jù)流進行處理,除非整個處理平臺意外中斷或顯示終止。由于整個數(shù)據(jù)流的處理時間極短,判讀的依據(jù)也往往集中在當(dāng)前時間點附近(時間窗口)的數(shù)據(jù),加上數(shù)據(jù)流中各數(shù)據(jù)項的不斷變化,留給大數(shù)據(jù)流式計算平臺進行調(diào)整和應(yīng)對的時間也很少,因此,流式數(shù)據(jù)處理的結(jié)果往往不夠精確、不夠全面,只能給出一個實時性很強的、相對準確的、基于當(dāng)前局部數(shù)據(jù)判斷的結(jié)果??梢?,對于無需先存儲、可以直接進行數(shù)據(jù)計算、實時性要求很嚴格但數(shù)據(jù)的精確度往往不太重要的應(yīng)用場景,流式計算具有明顯優(yōu)勢。
圖2 大數(shù)據(jù)流式計算架構(gòu)
大數(shù)據(jù)流式計算場景通常呈現(xiàn)出以下典型特征及挑戰(zhàn)。
大數(shù)據(jù)流呈現(xiàn)出鮮明的實時性、易失性、突發(fā)性、無序性、無限性等特征。流式大數(shù)據(jù)是實時產(chǎn)生、實時計算,結(jié)果反饋往往也需要保證及時性。數(shù)據(jù)的使用往往是一次性的、易失的,即使重放,得到的數(shù)據(jù)流和之前的數(shù)據(jù)流也不同。數(shù)據(jù)的產(chǎn)生完全由數(shù)據(jù)源確定,由于不同的數(shù)據(jù)源,在不同時空范圍內(nèi)的狀態(tài)不統(tǒng)一且動態(tài)變化,導(dǎo)致數(shù)據(jù)流的速率呈現(xiàn)出突發(fā)性的特征。各數(shù)據(jù)流之間、同一數(shù)據(jù)流內(nèi)部各數(shù)據(jù)元素之間是無序的。數(shù)據(jù)是實時產(chǎn)生、動態(tài)增加的,只要數(shù)據(jù)源處于活動狀態(tài),數(shù)據(jù)就會一直產(chǎn)生和持續(xù)增加,可以說,潛在的數(shù)據(jù)量是無限的。
大數(shù)據(jù)流式環(huán)境中的數(shù)據(jù)計算在系統(tǒng)的可伸縮性、系統(tǒng)容錯、狀態(tài)一致性等方面均面臨著前所未有的新的挑戰(zhàn)。在系統(tǒng)的可伸縮性上,一方面,需要大數(shù)據(jù)流式系統(tǒng)具有很好的“可伸”特征,可以實時適應(yīng)數(shù)據(jù)增長的需求,實現(xiàn)對系統(tǒng)資源的動態(tài)調(diào)整和快速部署;另一方面,當(dāng)流式數(shù)據(jù)的產(chǎn)生速率持續(xù)減少時,需要及時回收在高峰時期所分配的目前已處于閑置或低效利用的資源,實現(xiàn)整個系統(tǒng)“可縮”的友好特征。在系統(tǒng)容錯上,一方面,數(shù)據(jù)流實時、持續(xù)地到來,呈現(xiàn)出同時間相識的一維特征,一旦數(shù)據(jù)流流過,再次重放數(shù)據(jù)流的成本很大,甚至是不現(xiàn)實的;另一方面,在流式大數(shù)據(jù)的計算過程中,大部分“無用”的數(shù)據(jù)將被直接丟棄,所被永久保存下來的數(shù)據(jù)量是極少的,當(dāng)需要進行系統(tǒng)容錯時,其中不可避免地會出現(xiàn)一個時間段內(nèi)數(shù)據(jù)的不完整;再則,需要針對不同類型的應(yīng)用,從系統(tǒng)層面上設(shè)計符合其應(yīng)用特征的數(shù)據(jù)容錯級別和容錯策略。在各節(jié)點間狀態(tài)的一致性上,一方面,如何從高速、海量的數(shù)據(jù)流中識別并維護一致性狀態(tài)的數(shù)據(jù)是一個巨大的挑戰(zhàn);另一方面,在大規(guī)模分布式環(huán)境中,如何組織和管理實現(xiàn)系統(tǒng)狀態(tài)一致性的相關(guān)數(shù)據(jù),滿足系統(tǒng)對數(shù)據(jù)的高效組織和精準管理的要求也是一個巨大的挑戰(zhàn)。
2.3 大圖計算的特征及挑戰(zhàn)
大數(shù)據(jù)圖計算[19~21](big data graph computing)是大數(shù)據(jù)計算的一種計算模式,隨著社交媒體、移動互聯(lián)網(wǎng)的不斷發(fā)展,在大數(shù)據(jù)計算中的重要性日益凸顯。大數(shù)據(jù)圖計算主要用來分析數(shù)據(jù)節(jié)點之間的關(guān)系和相似度,該計算范式已經(jīng)廣泛應(yīng)用于用戶分析、欺詐檢測、社交媒體、移動互聯(lián)網(wǎng)、生命科學(xué)等諸多領(lǐng)域,其巨大的商業(yè)價值已經(jīng)凸顯。
大數(shù)據(jù)圖計算中的大圖數(shù)據(jù)往往以圖中的節(jié)點以及連接節(jié)點的邊呈現(xiàn),其中節(jié)點數(shù)目往往是數(shù)以萬計的,邊的數(shù)量更大,通常具有如下3個特征。
(1)節(jié)點之間的關(guān)聯(lián)性
大圖中各節(jié)點之間的關(guān)系是通過邊來展現(xiàn)的。通常情況下,大圖中邊的數(shù)量是節(jié)點數(shù)量的指數(shù)倍。因此,節(jié)點和關(guān)系信息同等重要,圖結(jié)構(gòu)的差異也是由于對邊做了限制,在圖中,頂點和邊實例化構(gòu)成各種類型的圖,如標簽圖、屬性圖、語義圖以及特征圖等。如何針對節(jié)點和邊的不同作用和特征,進行節(jié)點和邊的存儲方式、組織模式以及計算途徑等挑戰(zhàn)的研究,結(jié)合具體應(yīng)用,提供一種高效的存儲方式、可擴展的組織模式以及有效的計算途徑,滿足具體應(yīng)用場景的需要,是研究的關(guān)鍵點。
(2)圖計算的數(shù)據(jù)耦合性強
在大圖中,數(shù)據(jù)之間是相互關(guān)聯(lián)的,對圖數(shù)據(jù)的計算也是相互關(guān)聯(lián)的。這種數(shù)據(jù)耦合的特性對圖的規(guī)模日益增大達到上百萬甚至上億節(jié)點的大圖數(shù)據(jù)計算提出了巨大的挑戰(zhàn)。大圖數(shù)據(jù)是無法使用單臺機器進行處理的,但如果對大圖數(shù)據(jù)進行并行處理,對于每一個頂點之間都是連通的圖來講,難以分割成若干完全獨立的子圖進行獨立的并行處理。即使可以分割,也會面臨并行機器的協(xié)同處理以及將最后的處理結(jié)果進行合并等一系列問題。這需要圖數(shù)據(jù)處理系統(tǒng)選取合適的圖分割以及圖計算模型來迎接挑戰(zhàn)并解決問題。
在大數(shù)據(jù)時代,大圖的分割是大數(shù)據(jù)圖計算最為突出的問題。由于對整個圖的訪問是隨機進行的,在圖劃分時需要考慮3個方面:通信代價,訪問跨機器的各邊通信量;負載均衡,讓每一臺機器的問題規(guī)模基本接近;存儲冗余,為了減少通信量,需要在機器上復(fù)制其他機器的存儲信息(存在數(shù)據(jù)一致性問題)。通過考慮存儲的冗余度,使綜合開銷達到最優(yōu)。
此外,大數(shù)據(jù)圖計算還存在以下問題:圖數(shù)據(jù)的局部性差,由于節(jié)點眾多,兩個相連接的點(連接的點對也是隨機的、無法預(yù)知的)可能存儲的位置相隔很遠,即不在同一個存儲塊,這使得系統(tǒng)需要隨機訪問這些節(jié)點及邊,而訪問磁盤的效率又極低,從而嚴重影響了計算效率;數(shù)據(jù)及圖結(jié)構(gòu)驅(qū)動,不同的圖形結(jié)構(gòu)會使用不同的計算方法,需要設(shè)計一個通用的方法;存儲和效率,大圖處理的規(guī)模(點的數(shù)量)基本上是10億量級,依靠單臺PC進行存儲似乎不太可能,所以大多數(shù)圖計算系統(tǒng)是分布式系統(tǒng)。由于這種系統(tǒng)是把存儲容量和計算分攤給每一個機器,因此需要考慮如何劃分才能使各機器負載均衡以及如何減少各個劃分之間通信等問題。
3.1 批量大數(shù)據(jù)計算系統(tǒng)
當(dāng)前典型的大數(shù)據(jù)批量計算的應(yīng)用系統(tǒng)有Hadoop[11]、Spark[13]。在Hadoop系統(tǒng)中,其體系結(jié)構(gòu)如圖3所示,由名字節(jié)點、數(shù)據(jù)節(jié)點、客戶端節(jié)點組成。其中,名字節(jié)點負責(zé)管理文件系統(tǒng)的命名空間、集群配置以及數(shù)據(jù)塊的備份、容錯等內(nèi)容;數(shù)據(jù)節(jié)點負責(zé)管理數(shù)據(jù)的存儲位置、副本數(shù)目等內(nèi)容,并以數(shù)據(jù)塊的形式存儲原始數(shù)據(jù)與校驗信息;客戶端節(jié)點通過與名字節(jié)點、數(shù)據(jù)節(jié)點進行通信,訪問HDFS,實現(xiàn)文件操作。數(shù)據(jù)通過HDFS的方式進行組織,可以將各類數(shù)據(jù)存儲在各種外部存儲介質(zhì)上,并通過MapReduce模式將計算邏輯分配到各數(shù)據(jù)節(jié)點進行數(shù)據(jù)計算和知識發(fā)現(xiàn)。
圖3 Hadoop體系結(jié)構(gòu)
圖4 RDD的操作繼承關(guān)系
在Spark系統(tǒng)中,數(shù)據(jù)被轉(zhuǎn)換成彈性分布式數(shù)據(jù)集(resilient distributed dataset,RDD),并以RDD為單位實現(xiàn)有效的數(shù)據(jù)處理。每個RDD都是一個不可變的分布式可重算的數(shù)據(jù)集,其記錄著確定性的操作繼承關(guān)系。如圖4所示,每一個橢圓形表示一個RDD,橢圓形中的每個圓形代表一個RDD中的一個分區(qū)。通過對RDD的操作繼承關(guān)系進行跟蹤,當(dāng)任意一個RDD的分區(qū)出錯或不可用時,只要輸入數(shù)據(jù)可重現(xiàn),就可以利用原始輸入數(shù)據(jù)通過轉(zhuǎn)換操作而重新算出,實現(xiàn)系統(tǒng)的容錯。
同時,Spark系統(tǒng)也可以在一定程度上支持大數(shù)據(jù)流式計算和交互計算的應(yīng)用范式。
3.2 流式大數(shù)據(jù)計算系統(tǒng)
早期流式計算的研究往往集中在數(shù)據(jù)庫環(huán)境中開展數(shù)據(jù)計算的流式化,數(shù)據(jù)規(guī)模較小,數(shù)據(jù)對象比較單一。大數(shù)據(jù)環(huán)境中的流式數(shù)據(jù)在實時性、易失性、突發(fā)性、無序性、無限性等方面提出了更高要求,現(xiàn)階段關(guān)于大數(shù)據(jù)流式計算的研究則更多地從系統(tǒng)架構(gòu)、數(shù)據(jù)傳輸、編程接口、高可用策略等方面開展和實施。當(dāng)前典型的大數(shù)據(jù)流式計算的應(yīng)用系統(tǒng)有Storm[17]、S4[18]。
在Storm系統(tǒng)中,采用主從式系統(tǒng)架構(gòu)。如圖5所示,一個Storm系統(tǒng)中有兩類節(jié)點,即一個主節(jié)點Nimbus和多個從節(jié)點supervisor,有3種運行環(huán)境,即master、cluster和slaves。其中,主節(jié)點Nimbus運行在master環(huán)境中,是無狀態(tài)的,負責(zé)全局的資源分配、任務(wù)調(diào)度、狀態(tài)監(jiān)控和故障檢測;從節(jié)點supervisor運行在slaves環(huán)境中,也是無狀態(tài)的,負責(zé)監(jiān)聽并接收來自于主節(jié)點Nimbus所分配的任務(wù),并啟動或停止自己所管理的工作進程worker,其中,工作進程worker負責(zé)具體任務(wù)的執(zhí)行。zookeeper是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)服務(wù)和元數(shù)據(jù)存儲系統(tǒng),通過配置zookeeper集群,可以使用zookeeper系統(tǒng)所提供的高可靠性的服務(wù)。Storm系統(tǒng)引入zookeeper,極大地簡化了Nimbus、supervisor、worker之間的設(shè)計,保障了系統(tǒng)的穩(wěn)定性。
圖5 Storm系統(tǒng)架構(gòu)
在S4系統(tǒng)中,采用對等式系統(tǒng)架構(gòu)。如圖6所示,一個S4系統(tǒng)由用戶空間、資源調(diào)度空間和S4處理節(jié)點空間組成。其中,在用戶空間中,多個用戶可以通過本地的客戶端驅(qū)動實現(xiàn)服務(wù)的請求訪問;在資源調(diào)度空間中,為用戶提供了客戶適配器,通過TCP/IP實現(xiàn)用戶的客戶端驅(qū)動與客戶適配器間的連接和通信,多個用戶可以并發(fā)地同多個客戶適配器進行服務(wù)請求;在S4處理節(jié)點空間中,提供了多個處理節(jié)點Pnode,進行用戶服務(wù)請求的計算,主要包括監(jiān)聽并分發(fā)接收到的事件計算請求,實現(xiàn)對事件流的路由選擇、負載均衡、邏輯影射、故障恢復(fù)等功能。各個處理節(jié)點間保持相對的獨立性、對等性和高并發(fā)性,極大地提高了系統(tǒng)的性能,并通過散列方式將事件路由到一個或多個目標處理節(jié)點上。
圖6 S4系統(tǒng)結(jié)構(gòu)
3.3 大數(shù)據(jù)圖計算系統(tǒng)
大數(shù)據(jù)圖計算主要用來分析數(shù)據(jù)節(jié)點之間的關(guān)系和相似度,其巨大的商業(yè)價值已經(jīng)凸顯。例如,利用PageRank技術(shù)發(fā)現(xiàn)有影響力的用戶,將GraphLab技術(shù)[20]用于社區(qū)、欺詐檢測和推薦系統(tǒng),還有一些分布式計算應(yīng)用到Giraph、GraphX、Faunus和Grappa。GraphLab是美國卡耐基大學(xué)開發(fā)的一個并行的圖挖掘分布式系統(tǒng)。該技術(shù)解決了傳統(tǒng)MapReduce中有關(guān)機器學(xué)習(xí)處理頻繁迭代計算和大量節(jié)點通信導(dǎo)致的計算效率低下的問題。具體來講,在GraphLab中,以頂點為計算單元,將機器學(xué)習(xí)算法抽象為聚集、應(yīng)用和分散3個步驟。在每一個迭代過程中,點的計算需要經(jīng)過這3個步驟。并且,Graphlab是在共享內(nèi)存的基礎(chǔ)上,各機器異步、動態(tài)并行地執(zhí)行計算任務(wù),比BSP(bulk synchronous parallel,整體同步并行)計算效率更高,并且能夠很好地保證數(shù)據(jù)的一致性。
從系統(tǒng)角度看大數(shù)據(jù)計算,未來可能的研究方向包括以下幾個方面。
(1)批量計算
大數(shù)據(jù)批量計算需要讀寫大量數(shù)據(jù),而目前的存儲系統(tǒng)主要針對計算密集型應(yīng)用設(shè)計,從存儲系統(tǒng)讀出原始數(shù)據(jù)進行批量計算,計算結(jié)束后將計算結(jié)果寫入存儲系統(tǒng)。相應(yīng)存儲系統(tǒng)強調(diào)數(shù)據(jù)吞吐量,數(shù)據(jù)一致性保證程度高,數(shù)據(jù)讀寫時延相對較高。一個有潛力的研究方向是利用大數(shù)據(jù)批量計算的特征,解決大數(shù)據(jù)計算中的存儲瓶頸問題。
另一類研究工作是針對典型應(yīng)用進行定制化的性能優(yōu)化,一個代表性例子是深度學(xué)習(xí)算法的并行加速技術(shù)研究。以深度學(xué)習(xí)中的卷積神經(jīng)元網(wǎng)絡(luò)為例,一個研究方向是使用GPU對卷積神經(jīng)元網(wǎng)絡(luò)進行加速,另一個方向是使用多臺機器對卷積神經(jīng)元網(wǎng)絡(luò)進行并行化加速。
(2)大數(shù)據(jù)流式計算
需要構(gòu)建一個高效、可擴展的計算平臺,一方面需要具有很好的通用性,滿足對流式數(shù)據(jù)計算的需要,提供一系列公用的流式計算工具和屬性;同時要在在線資源管理、狀態(tài)一次性維護、用戶級容錯策略等方面具有良好的性能。
大數(shù)據(jù)流式計算中,數(shù)據(jù)流具有多流混合、流速波動等特性,一個研究方向是如何設(shè)計并優(yōu)化流式計算中的資源調(diào)度策略,同時實現(xiàn)數(shù)據(jù)流速高時處理速度快和數(shù)據(jù)流速低時能耗低兩個目標。大數(shù)據(jù)流式計算需要提供7×24 h的連續(xù)計算能力,對于系統(tǒng)可靠性方面的要求很高。另一個研究方向是如何利用流式計算的特征,同時實現(xiàn)數(shù)據(jù)流計算高可靠和可靠性維護開銷低兩個目標。
(3)大數(shù)據(jù)圖計算
圖計算系統(tǒng)的構(gòu)建有兩個思路:一種是為了避免數(shù)據(jù)關(guān)聯(lián)性帶來的機間通信而采用單機圖處理。往往采用圖數(shù)據(jù)分區(qū)的方法,每次加載一個分區(qū),循環(huán)多次處理一張大圖。網(wǎng)絡(luò)大數(shù)據(jù)的多維關(guān)聯(lián)性,導(dǎo)致大數(shù)據(jù)計算對網(wǎng)絡(luò)圖空間的訪問發(fā)散性。由于緩存機制和介質(zhì)特性,整個存儲棧都對數(shù)據(jù)局部性表現(xiàn)出更好的性能。一個重要的研究方向是如何解決網(wǎng)絡(luò)圖空間的訪問發(fā)散性與高效存儲所需的數(shù)據(jù)局部性之間的矛盾。
另一種思路是充分發(fā)揮多臺機器并行計算的優(yōu)勢而采用多機圖計算。這種大數(shù)據(jù)圖計算方式面臨的最為突出的問題就是大圖分割問題。由于對整個圖的訪問是隨機進行的,一個研究方向是如何在圖劃分時實現(xiàn)通信代價低、計算及傳輸負載均衡、存儲冗余度合理3個目標。
在大數(shù)據(jù)時代,大數(shù)據(jù)計算是大數(shù)據(jù)整個生命周期中的核心,是大數(shù)據(jù)中知識發(fā)現(xiàn)的關(guān)鍵。大數(shù)據(jù)計算模式主要包括大數(shù)據(jù)批量計算、流式計算、圖計算、交互計算等,這些不同的計算模式分別滿足不同的應(yīng)用范式對數(shù)據(jù)計算結(jié)果在處理精度、實時性等方面的不同要求。這些計算模式并不是相互獨立的,可以相互配合,滿足同一應(yīng)用范式在不同階段對數(shù)據(jù)計算結(jié)果的要求。當(dāng)前,批量計算是大數(shù)據(jù)計算的最主要模式。隨著用戶應(yīng)用需求和技術(shù)的不斷變化,所需要的計算模式也會不斷變化,亟待根據(jù)最新應(yīng)用范式的發(fā)展和要求,針對具體場景,開展對相關(guān)計算模式中出現(xiàn)的新情況、新問題的研究。
[1] Chen C L, Zhang C Y. Data-intensive applications, challenges, techniques and technologies: a survey on big data. Information Sciences, 2014(275): 314~347 [2] Chang R M, Kauffman R J, Kwon Y. Understanding the paradigm shift to computational social science in the presence of big data. Decision Support Systems, 2014(63): 67~80
[3] Kambatla K, Kollias G, Kumar V, et al. Trends in big data analytics. Journal of Parallel and Distributed Computing, 2014(74): 2561~2573
[4] 李國杰, 程學(xué)旗. 大數(shù)據(jù)研究: 未來科技及經(jīng)濟社會發(fā)展的重大戰(zhàn)略領(lǐng)域——大數(shù)據(jù)的研究現(xiàn)狀與科學(xué)思考. 中國科學(xué)院院刊, 2012, 27(6): 647~657 Li G J, Cheng X Q. Big data research: the major strategic areas of technology and economic development——research status and scientific thinking of big data. Bulletin of the Chinese Academy of Sciences, 2012, 27(6): 647~657
[5] 孫大為, 張廣艷, 鄭緯民. 大數(shù)據(jù)流式計算:關(guān)鍵技術(shù)及系統(tǒng)實例. 軟件學(xué)報, 2014, 25(4): 839~862 Sun D W, Zhang G Y, Zheng W M. Big data stream computing: technologies and instances. Journal of Software, 2014, 25(4): 839~862
[6] 程學(xué)旗, 靳小龍, 王元卓等. 大數(shù)據(jù)系統(tǒng)和分析技術(shù)綜述. 軟件學(xué)報, 2014, 25(9):1889~1908 Cheng X Q, Jin X L, Wang Y Z, et al. Survey on big data system and analytic technology. Journal of Software, 2014, 25(9): 1889~1908
[7] 王元卓, 靳小龍, 程學(xué)旗. 網(wǎng)絡(luò)大數(shù)據(jù):現(xiàn)狀與展望. 計算機學(xué)報, 2013, 36(6): 1125~1138 Wang Y Z, Jin X L, Cheng X Q. Network big data: present and future. Chinese Journal of Computers, 2013, 36(6): 1125~1138
[8] 李學(xué)龍, 龔海剛. 大數(shù)據(jù)系統(tǒng)綜述. 中國科學(xué):信息科學(xué), 2015, 45(1): 1~44 Li X L, Gong H G. Survey on big data system. Scientia Sinica Informationis, 2015, 45(1): 1~44
[9] Dobre C, Xhafa F. Intelligent services for big data science. Future Generation Computer Systems, 2014(37): 267~281
[10] Aisling O D, Jurate D, Roy D S. Big data, Hadoop and cloud computing in genomics. Journal of Biomedical Informatics, 2013(46): 774~781
[11] Hadoop. http://hadoop.apache.org/,2005
[12] Zaharia M, Das T, Li H, et al. Discretized streams: fault-tolerant streaming computation at scale. Proceedings of the SOSP 2013, Pennsylvania, USA, 2013
[13] Spark. http://spark-project.org,2013
[14] Cugola G, Margara A. Processing flows of information: from data stream to complex event processing. ACM Computing Surveys, 2012, 44(3): 51~62
[15] Zhang Z, Gu Y, Ye F, et al. A hybrid approach to high availability in stream processing systems. Proceedings of the 30th IEEE International Conference on Distributed Computing Systems, Genova, Italy, Jun 2010: 138~148
[16] Liu X F, Lftikhar N, Xie X. Survey of real-time processing systems for big data. Proceedings of IDEAS 2014, Porto Portugal, 2014: 356~361
[17] Storm. http://storm-project.net/,2015
[18] Chauhan J, Chowdhury S A, Makaroff D. Performance evaluation of Yahoo! S4: a first look. Proceedings of 7th International Conference on P2P, Parallel, Grid, Cloud and Internet Computing, Victoria, BC, Canada, 2012: 58~65
[19] Chatziantoniou D, Pramatari K, Sotiropoulos Y. Supporting real-time supply chain decisions based on RFID data streams. Journal of Systems and Software, 2011, 84(4): 700~710
[20] GraphLab. http://graphlab.org/projects/ index.html,2015
[21] Furedi Z, Kostochka A, Kumbhat M. Choosability with separation of complete multipartite graphs and hypergraphs. Journal of Graph Theory, 2014, 76(2): 129~137
Zheng W M. Reviewing big data computation from a system perspective. Big Data Research, 2015002
Reviewing Big Data Computation from a System Perspective
Zheng Weimin
Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China
Big data computing is a necessary way to acquire the “great value” behind the big data, and a computing system is an effective tool for big data computing. Big data computing from a system perspective was reviewed. Based on the fact that big data has the macro characteristics of huge volume, growing fast, complex structure, and quality disparity, the typical features of big data computing by analyzing batch computing, stream computing, and graph computing respectively, were discussed. These features may bring technical challenges to the design and implementation of big data computing system. The related works for overcoming these challenges were further categoried. In the end, some prospective research directions of big data computing from the system perspective were listed.
big data computing, batch computing, stream computing, graph computing, system instance
鄭緯民,男,清華大學(xué)教授、博士生導(dǎo)師,中國計算機學(xué)會理事長,目前主要從事并行與分布式計算、存儲系統(tǒng)的研究工作,主持和參與多項國家“973”計劃、“863”計劃、國家自然科學(xué)基金項目。近年來在IEEE TC/IEEE TPDS/ACM TOS/FAST等本領(lǐng)域頂級期刊與國際會議發(fā)表論文40余篇。
2015-05-03;
2015-05-06
國家重點基礎(chǔ)研究發(fā)展計劃(“973”計劃)基金資助項目(No.2014CB340402),國家自然科學(xué)基金資助項目(No.61170008,No.61272055)
Foundation Items:The National Basic Research Program of China(973 Program)(No.2014CB340402), The National Natural Science Foundation of China(No.61170008,No.61272055)
鄭緯民. 從系統(tǒng)角度審視大數(shù)據(jù)計算. 大數(shù)據(jù), 2015002