在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的時(shí)效性日益突出,數(shù)據(jù)的流式特征更加明顯,越來越多的應(yīng)用場景需要部署在流式計(jì)算平臺(tái)中。大數(shù)據(jù)流式計(jì)算作為大數(shù)據(jù)計(jì)算的一種形態(tài),其重要性也不斷提升。針對大數(shù)據(jù)環(huán)境中流式計(jì)算應(yīng)用所呈現(xiàn)出的諸多鮮明特征進(jìn)行了系統(tǒng)化的分析,并從系統(tǒng)架構(gòu)的角度,給出了大數(shù)據(jù)流式計(jì)算系統(tǒng)構(gòu)建的原則性策略。結(jié)合當(dāng)前比較典型的流式計(jì)算平臺(tái),重點(diǎn)研究了當(dāng)前大數(shù)據(jù)流式計(jì)算在在線環(huán)境下的資源調(diào)度和節(jié)點(diǎn)依賴環(huán)境下的容錯(cuò)策略等方面的技術(shù)挑戰(zhàn)。
1 引言
云計(jì)算、物聯(lián)網(wǎng)等新興信息技術(shù)和應(yīng)用模式的快速發(fā)展,推動(dòng)人類社會(huì)邁入大數(shù)據(jù)新時(shí)代[1~3]。一般意義上,大數(shù)據(jù)是指利用現(xiàn)有理論、方法、技術(shù)和工具難以在可接受的時(shí)間內(nèi)完成分析計(jì)算、整體呈現(xiàn)高價(jià)值的海量復(fù)雜數(shù)據(jù)集合。大數(shù)據(jù)蘊(yùn)含大信息,大信息提煉大知識(shí),大知識(shí)將在更高的層面、以更廣的視角、在更大的范圍內(nèi)幫助用戶提高洞察力、提升決策力,為人類社會(huì)創(chuàng)造前所未有的大價(jià)值。但與此同時(shí),這些總量極大的價(jià)值往往隱藏在大數(shù)據(jù)中,表現(xiàn)出了價(jià)值密度極低、分布極其不規(guī)律、信息隱藏程度極深、發(fā)現(xiàn)有用價(jià)值極其困難等鮮明特性,這些特征必然為大數(shù)據(jù)的計(jì)算帶來前所未有的挑戰(zhàn)和機(jī)遇。
大數(shù)據(jù)的計(jì)算模式[2~5]主要分為批量計(jì)算(batch computing)、流式計(jì)算(stream computing)、交互計(jì)算(interactive computing)、圖計(jì)算(graph computing)等。其中,流式計(jì)算和批量計(jì)算是兩種主要的大數(shù)據(jù)計(jì)算模式,分別適用于不同的大數(shù)據(jù)應(yīng)用場景。對于先存儲(chǔ)后計(jì)算,實(shí)時(shí)性要求不高,同時(shí)數(shù)據(jù)的準(zhǔn)確性、全面性更為重要的應(yīng)用場景,批量計(jì)算更加適合;對于無需先存儲(chǔ),可以直接進(jìn)行數(shù)據(jù)計(jì)算,實(shí)時(shí)性要求很嚴(yán)格,但數(shù)據(jù)的精確度往往不太苛刻的應(yīng)用場景,流式計(jì)算具有明顯優(yōu)勢。流式計(jì)算中,數(shù)據(jù)往往是最近一個(gè)時(shí)間窗口內(nèi)的增量數(shù)據(jù),因此數(shù)據(jù)時(shí)延往往較短,實(shí)時(shí)性較強(qiáng),但數(shù)據(jù)的信息量往往相對較少,只限于一個(gè)時(shí)間窗口內(nèi)的信息,不具有全量信息。流式計(jì)算和批量計(jì)算具有明顯的優(yōu)劣互補(bǔ)特征,在多種應(yīng)用場合下可以將兩者結(jié)合起來使用,通過發(fā)揮流式計(jì)算的實(shí)時(shí)性優(yōu)勢和批量計(jì)算的計(jì)算精度優(yōu)勢,滿足多種應(yīng)用場景在不同階段的數(shù)據(jù)計(jì)算要求。
在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的時(shí)效性日益突出,數(shù)據(jù)的流式特征更加明顯,越來越多的應(yīng)用場景需要部署在流式計(jì)算平臺(tái)中。大數(shù)據(jù)流式計(jì)算作為大數(shù)據(jù)計(jì)算的一種形態(tài),其重要性也在不斷提升。大數(shù)據(jù)時(shí)代的流式計(jì)算呈現(xiàn)出了鮮明的高帶寬、低時(shí)延的應(yīng)用需求,傳統(tǒng)的流式計(jì)算平臺(tái)的構(gòu)建往往是以數(shù)據(jù)庫為基礎(chǔ),且數(shù)據(jù)規(guī)模較小,數(shù)據(jù)對象較單一,無法滿足大數(shù)據(jù)流式計(jì)算需求。如何構(gòu)建低時(shí)延、高帶寬、持續(xù)可靠、長期運(yùn)行的大數(shù)據(jù)流式計(jì)算系統(tǒng)是當(dāng)前亟待解決的問題。本文針對大數(shù)據(jù)環(huán)境中,流式計(jì)算應(yīng)用所呈現(xiàn)出的諸多鮮明特征進(jìn)行了系統(tǒng)化的分析,并從系統(tǒng)架構(gòu)的角度,給出了大數(shù)據(jù)流式計(jì)算系統(tǒng)構(gòu)建的原則性策略。結(jié)合當(dāng)前比較典型的流式計(jì)算平臺(tái),重點(diǎn)研究了當(dāng)前大數(shù)據(jù)流式計(jì)算在在線環(huán)境下的資源調(diào)度和節(jié)點(diǎn)依賴環(huán)境下的容錯(cuò)策略等方面的技術(shù)挑戰(zhàn)。
2 流式應(yīng)用分析
大數(shù)據(jù)流式計(jì)算有著悠久的應(yīng)用歷史,早在20世紀(jì)80年代就有部署和應(yīng)用,在今天的大數(shù)據(jù)時(shí)代,其應(yīng)用的領(lǐng)域和范圍在不斷地?cái)U(kuò)大,也呈現(xiàn)出了諸多新的特征和要求[6~9]。本節(jié)將從大數(shù)據(jù)流式計(jì)算的典型應(yīng)用場景出發(fā),系統(tǒng)地分析大數(shù)據(jù)環(huán)境中流式應(yīng)用所呈現(xiàn)出來的諸多鮮明特征,并從系統(tǒng)架構(gòu)的角度,給出大數(shù)據(jù)流式計(jì)算系統(tǒng)建設(shè)的原則性策略。
2.1 應(yīng)用及特征
大數(shù)據(jù)流式計(jì)算可以廣泛應(yīng)用于金融銀行、互聯(lián)網(wǎng)、物聯(lián)網(wǎng)等諸多領(lǐng)域,如股市實(shí)時(shí)分析、插入式廣告投放、交通流量實(shí)時(shí)預(yù)警等場景,主要是為了滿足該場景下的實(shí)時(shí)應(yīng)用需求。數(shù)據(jù)往往以數(shù)據(jù)流的形式持續(xù)到達(dá)數(shù)據(jù)計(jì)算系統(tǒng),計(jì)算功能的實(shí)現(xiàn)是通過有向任務(wù)圖的形式進(jìn)行描述,數(shù)據(jù)流在有向任務(wù)圖中流過后,會(huì)實(shí)時(shí)產(chǎn)生相應(yīng)的計(jì)算結(jié)果。整個(gè)數(shù)據(jù)流的處理過程往往是在毫秒級的時(shí)間內(nèi)完成的。
通常情況下,大數(shù)據(jù)流式計(jì)算場景具有以下鮮明特征。
在流式計(jì)算環(huán)境中,數(shù)據(jù)是以元組為單位,以連續(xù)數(shù)據(jù)流的形態(tài),持續(xù)地到達(dá)大數(shù)據(jù)流式計(jì)算平臺(tái)。數(shù)據(jù)并不是一次全部可用,不能夠一次得到全量數(shù)據(jù),只能在不同的時(shí)間點(diǎn),以增量的方式,逐步得到相應(yīng)數(shù)據(jù)。
數(shù)據(jù)源往往是多個(gè),在進(jìn)行數(shù)據(jù)流重放的過程中,數(shù)據(jù)流中各個(gè)元組間的相對順序是不能控制的。也就是說,在數(shù)據(jù)流重放過程中,得到完全相同的數(shù)據(jù)流(相同的數(shù)據(jù)元組和相同的元組順序)是很困難的,甚至是不可能的。
數(shù)據(jù)流的流速是高速的,且隨著時(shí)間在不斷動(dòng)態(tài)變化。這種變化主要體現(xiàn)在兩個(gè)方面,一個(gè)方面是數(shù)據(jù)流流速大小在不同時(shí)間點(diǎn)的變化,這就需要系統(tǒng)可以彈性、動(dòng)態(tài)地適應(yīng)數(shù)據(jù)流的變化,實(shí)現(xiàn)系統(tǒng)中資源、能耗的高效利用;另一方面是數(shù)據(jù)流中各個(gè)元組內(nèi)容(語義)在不同時(shí)間點(diǎn)的變化,即概念漂移,這就需要處理數(shù)據(jù)流的有向任務(wù)圖可以及時(shí)識(shí)別、動(dòng)態(tài)更新和有效適應(yīng)這種語義層面上的變化。
實(shí)時(shí)分析和處理數(shù)據(jù)流是至關(guān)重要的,在數(shù)據(jù)流中,其生命周期的時(shí)效性往往很短,數(shù)據(jù)的時(shí)間價(jià)值也更加重要。所有數(shù)據(jù)流到來后,均需要實(shí)時(shí)處理,并實(shí)時(shí)產(chǎn)生相應(yīng)結(jié)果,進(jìn)行反饋,所有的數(shù)據(jù)元組也僅會(huì)被處理一次。雖然部分?jǐn)?shù)據(jù)可能以批量的形式被存儲(chǔ)下來,但也只是為了滿足后續(xù)其他場景下的應(yīng)用需求。
數(shù)據(jù)流是無窮無盡的,只要有數(shù)據(jù)源在不斷產(chǎn)生數(shù)據(jù),數(shù)據(jù)流就會(huì)持續(xù)不斷地到來。這也就需要流式計(jì)算系統(tǒng)永遠(yuǎn)在線運(yùn)行,時(shí)刻準(zhǔn)備接收和處理到來的數(shù)據(jù)流。在線運(yùn)行是流式計(jì)算系統(tǒng)的一個(gè)常態(tài),一旦系統(tǒng)上線后,所有對該系統(tǒng)的調(diào)整和優(yōu)化也將在在線環(huán)境中開展和完成。
多個(gè)不同應(yīng)用會(huì)通過各自的有向任務(wù)圖進(jìn)行表示,并將被部署在一個(gè)大數(shù)據(jù)計(jì)算平臺(tái)中,如圖1所示,這就需要整個(gè)計(jì)算平臺(tái)可以有效地為各個(gè)有向任務(wù)圖分配合理資源,并保證滿足用戶服務(wù)級目標(biāo)。同時(shí)各個(gè)資源間需要公平地競爭資源、合理地共享資源,特別是要滿足不同時(shí)間點(diǎn)各應(yīng)用間系統(tǒng)資源的公平使用。
圖 1 大數(shù)據(jù)流式應(yīng)用部署
2.2 流式計(jì)算系統(tǒng)構(gòu)建原則
在大數(shù)據(jù)流式計(jì)算系統(tǒng)架構(gòu)方面,由于大數(shù)據(jù)流式計(jì)算、批量計(jì)算、圖計(jì)算等模式間存在顯著不同,在一個(gè)計(jì)算平臺(tái)中,試圖將大數(shù)據(jù)批量計(jì)算、流式計(jì)算、圖計(jì)算等多種不同計(jì)算形態(tài)集成起來,往往是很困難的。其中,也有些平臺(tái)試圖做這樣的工作,如在大數(shù)據(jù)批量計(jì)算平臺(tái)Spark中,加入了流式計(jì)算功能,形成了Spark Streaming子系統(tǒng),其實(shí)現(xiàn)的關(guān)鍵是將Spark中任務(wù)處理步長盡可能地縮短,從而降低數(shù)據(jù)處理的時(shí)延。但Spark Streaming也只能達(dá)到亞秒級的用戶響應(yīng),并不能真正滿足流式計(jì)算需要。此外, YARN等平臺(tái)也試圖對不同的計(jì)算形態(tài)進(jìn)行集成,由于這些計(jì)算形態(tài)差異很大,應(yīng)用場景截然不同,需要提供的體系結(jié)構(gòu)、資源管理等各方面也不完全一樣,所以必須針對具體的計(jì)算場景,開展針對性的計(jì)算平臺(tái)的研究,才能更好地適應(yīng)實(shí)際需要。
大數(shù)據(jù)流式計(jì)算系統(tǒng)的體系結(jié)構(gòu)需要重點(diǎn)考慮以下因素。
(1)分布式體系結(jié)構(gòu)
集中式體系結(jié)構(gòu)對于大數(shù)據(jù)流式計(jì)算系統(tǒng)往往很難滿足其可擴(kuò)展性的需要,人們往往會(huì)優(yōu)先采用分布式體系結(jié)構(gòu)來構(gòu)建流式計(jì)算系統(tǒng),這樣可以可擴(kuò)展地適應(yīng)數(shù)據(jù)流壓力的動(dòng)態(tài)變化,靈活地進(jìn)行系統(tǒng)的伸展和收縮,實(shí)現(xiàn)對相關(guān)資源和任務(wù)在在線環(huán)境中的調(diào)整和優(yōu)化。
(2)內(nèi)存計(jì)算是首要考慮因素
當(dāng)一個(gè)有向任務(wù)圖被提交到系統(tǒng)中后,該有向任務(wù)圖將常駐內(nèi)存,并將永遠(yuǎn)在線運(yùn)行(除非被顯示終止或系統(tǒng)崩潰),所有數(shù)據(jù)流到達(dá)系統(tǒng)后,也將直接在內(nèi)存中完成相關(guān)計(jì)算,并實(shí)時(shí)產(chǎn)生和輸出計(jì)算結(jié)果。部分?jǐn)?shù)據(jù)可能會(huì)被選擇性地存儲(chǔ)在外存介質(zhì)上,顯然內(nèi)存成為這個(gè)數(shù)據(jù)計(jì)算過程中的主要場所和重要位置。因此,在系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)過程中,需要合理、高效地利用內(nèi)存資源。
(3)時(shí)效性是系統(tǒng)設(shè)計(jì)的首要目標(biāo)
大數(shù)據(jù)流式計(jì)算環(huán)境中,數(shù)據(jù)的時(shí)間價(jià)值是首要的,當(dāng)數(shù)據(jù)流到來后,必須在毫秒級的時(shí)間內(nèi)完成對數(shù)據(jù)流中相應(yīng)知識(shí)的發(fā)現(xiàn),這個(gè)過程中時(shí)效性是首要的,準(zhǔn)確性是次要的,部分、及時(shí)、相對準(zhǔn)確的計(jì)算結(jié)果是好于全面、延遲、精確的計(jì)算結(jié)果的。根據(jù)具體場景的需要,數(shù)據(jù)流可以被選擇性地存儲(chǔ)起來,后續(xù)可以進(jìn)行批量計(jì)算,更為準(zhǔn)確、全面地發(fā)現(xiàn)其中的知識(shí),實(shí)現(xiàn)大數(shù)據(jù)流式計(jì)算和批量計(jì)算間的優(yōu)勢互補(bǔ)。
(4)在線運(yùn)行環(huán)境將是系統(tǒng)的常態(tài)
所有關(guān)于系統(tǒng)的調(diào)整和優(yōu)化將會(huì)在在線環(huán)境中開展,這種情況下,需要將系統(tǒng)的優(yōu)化性能、穩(wěn)定性、波動(dòng)等因素綜合考慮進(jìn)來,最優(yōu)的方案在在線環(huán)境中進(jìn)行調(diào)整未必是最合理的,當(dāng)前這一時(shí)刻對于系統(tǒng)而言,可能是最優(yōu)的,但是要達(dá)到這種最優(yōu)狀態(tài)需要調(diào)整過多的系統(tǒng)資源,可能會(huì)對系統(tǒng)的穩(wěn)定性產(chǎn)生影響。而且,在下一時(shí)刻,數(shù)據(jù)流壓力發(fā)生變化后,這種當(dāng)前的最優(yōu)方案可能又變?yōu)榉亲顑?yōu)狀態(tài)了。因此,對系統(tǒng)性能有所改善的方案可能會(huì)達(dá)到更佳效果,要綜合權(quán)衡系統(tǒng)性能、穩(wěn)定性、動(dòng)態(tài)在線變化等多個(gè)方面的因素。
3 技術(shù)挑戰(zhàn)
大數(shù)據(jù)流式計(jì)算系統(tǒng)存在諸多挑戰(zhàn)[9~13],如資源調(diào)度、系統(tǒng)容錯(cuò)、動(dòng)態(tài)時(shí)間窗口、高效索引策略等諸多方面。本節(jié)將從大數(shù)據(jù)流式計(jì)算系統(tǒng)架構(gòu)的角度,針對當(dāng)前大數(shù)據(jù)流式計(jì)算環(huán)境中存在的兩個(gè)方面的典型問題進(jìn)行系統(tǒng)化的分析,即在線環(huán)境下的資源調(diào)度問題和節(jié)點(diǎn)依賴環(huán)境下的容錯(cuò)策略問題,并原則性地分別給出了兩類問題的解決策略。
3.1 在線環(huán)境下的資源調(diào)度
資源調(diào)度是分布式系統(tǒng)中資源管理的關(guān)鍵與核心,也是NP難問題,制約著整個(gè)系統(tǒng)的高效運(yùn)行。在大數(shù)據(jù)流式計(jì)算環(huán)境中,在線環(huán)境中的資源調(diào)度又更加困難,任何一個(gè)資源或要素的調(diào)整,都會(huì)對運(yùn)行著的系統(tǒng)產(chǎn)生實(shí)時(shí)影響,也會(huì)對整個(gè)系統(tǒng)的穩(wěn)定性帶來一定程度上的波動(dòng)。Storm系統(tǒng)作為業(yè)界最具影響力的大數(shù)據(jù)流式計(jì)算系統(tǒng),目前其所選用的資源調(diào)度策略為輪詢方式,只是簡單地將有向任務(wù)圖中各個(gè)節(jié)點(diǎn)按照一定的拓?fù)湫蛄蟹胖玫礁鱾€(gè)物理機(jī)器上去,這個(gè)調(diào)度策略沒有考慮物理機(jī)器的性能以及物理機(jī)器間的拓?fù)浣Y(jié)構(gòu),沒有考慮有向任務(wù)圖中各個(gè)節(jié)點(diǎn)的計(jì)算壓力和節(jié)點(diǎn)間的通信壓力。在在線調(diào)整過程中,這個(gè)調(diào)度策略沒有考慮當(dāng)前各個(gè)節(jié)點(diǎn)的資源分配情況,也就是說在實(shí)現(xiàn)對新的環(huán)境優(yōu)化和適應(yīng)的過程中,沒有考慮盡可能地減少系統(tǒng)中節(jié)點(diǎn)的變動(dòng),提升系統(tǒng)的穩(wěn)定性。這些因素的缺失,對于Storm系統(tǒng)的性能必然帶來一定程度上的損傷。
在資源調(diào)度方面,針對大數(shù)據(jù)流式計(jì)算環(huán)境中,應(yīng)用均是通過有向任務(wù)圖進(jìn)行描述的客觀事實(shí),需要構(gòu)建一個(gè)彈性、自適應(yīng)的在線調(diào)度策略,滿足大數(shù)據(jù)流式應(yīng)用一旦開啟將永遠(yuǎn)運(yùn)行下去的在線場景下的資源調(diào)度需要,即一方面要有效地適應(yīng)數(shù)據(jù)流、資源等各方面的動(dòng)態(tài)變化,另一方面也要保持系統(tǒng)的穩(wěn)定性,避免因調(diào)整導(dǎo)致的系統(tǒng)大幅度波動(dòng),影響系統(tǒng)的穩(wěn)定性。具體包括以下內(nèi)容:在有向任務(wù)圖節(jié)點(diǎn)計(jì)算量和節(jié)點(diǎn)通信量的量化方面,節(jié)點(diǎn)處理時(shí)延影響因素有邏輯節(jié)點(diǎn)的功能、數(shù)據(jù)處理功能、數(shù)據(jù)流流速大小等;節(jié)點(diǎn)間傳輸時(shí)延影響因素有節(jié)點(diǎn)間傳輸數(shù)據(jù)流大小、網(wǎng)絡(luò)帶寬,物理距離等。整個(gè)有向任務(wù)圖在任何一個(gè)時(shí)刻都會(huì)存在一條關(guān)鍵路徑,其時(shí)延也是由該圖的當(dāng)前關(guān)鍵路徑?jīng)Q定的,關(guān)鍵路徑將是整個(gè)有向任務(wù)圖的核心和瓶頸,明確了當(dāng)前的關(guān)鍵路徑,就可以找到改善系統(tǒng)性能的要害。同時(shí)隨著不同數(shù)據(jù)流壓力的變化,各個(gè)節(jié)點(diǎn)的計(jì)算時(shí)延和傳輸時(shí)延也會(huì)發(fā)生變化,這樣不同數(shù)據(jù)流壓力情況下的有向任務(wù)圖的關(guān)鍵路徑也會(huì)動(dòng)態(tài)變化。在有向任務(wù)圖到系統(tǒng)資源的放置策略以及在線調(diào)整方面,對于一個(gè)經(jīng)過優(yōu)化和調(diào)整后的任務(wù)拓?fù)浣Y(jié)構(gòu)的實(shí)例圖,隨著數(shù)據(jù)流和系統(tǒng)環(huán)境的在線和實(shí)時(shí)變化,以關(guān)鍵路徑為核心,動(dòng)態(tài)地調(diào)整任務(wù)拓?fù)鋱D中各節(jié)點(diǎn)實(shí)例在各臺(tái)物理機(jī)器間的分配策略(如圖2所示),可以實(shí)現(xiàn)對系統(tǒng)響應(yīng)時(shí)間的顯著改善。同時(shí),當(dāng)數(shù)據(jù)流壓力發(fā)生變化后,只需要調(diào)整關(guān)鍵路徑上的部分節(jié)點(diǎn),就可以實(shí)現(xiàn)對系統(tǒng)性能的改善,這樣就可以在盡可能地保持系統(tǒng)穩(wěn)定性的前提下,最大程度地改善系統(tǒng)性能,在動(dòng)態(tài)調(diào)整和優(yōu)化過程中,實(shí)現(xiàn)對歷史成量信息的最大利用。在多個(gè)有向任務(wù)圖分別被提交到系統(tǒng)中后,需要保證在不同時(shí)間點(diǎn)提交的各個(gè)有向任務(wù)圖可以公平地使用系統(tǒng)資源,這就需要明確各物理機(jī)器的計(jì)算壓力和拓?fù)浣Y(jié)構(gòu)、各個(gè)有向任務(wù)圖中節(jié)點(diǎn)的計(jì)算壓力和傳輸壓力,并通過一定的分配策略,實(shí)現(xiàn)資源的合理利用以及各有向任務(wù)圖間的資源公平占有和動(dòng)態(tài)調(diào)整。
圖 2 資源分配和動(dòng)態(tài)調(diào)整
3.2 節(jié)點(diǎn)依賴環(huán)境下的容錯(cuò)策略
系統(tǒng)容錯(cuò)是分布式系統(tǒng)必不可少的一部分,特別是對于大數(shù)據(jù)流式計(jì)算系統(tǒng)而言,容錯(cuò)的價(jià)值顯得尤為突出。在大數(shù)據(jù)流式計(jì)算環(huán)境中,數(shù)據(jù)流到來后往往只有一次處理的機(jī)會(huì),重放數(shù)據(jù)流是很困難的,甚至是不可能的。這僅有的一次機(jī)會(huì)給容錯(cuò)帶來了更高的挑戰(zhàn)。另外,系統(tǒng)的實(shí)時(shí)性是大數(shù)據(jù)流式計(jì)算系統(tǒng)的首要目標(biāo),這也為容錯(cuò)策略提出了更高的要求,當(dāng)高效的容錯(cuò)策略需要過長的時(shí)延時(shí),會(huì)導(dǎo)致容錯(cuò)變得沒有意義。Storm系統(tǒng)通過系統(tǒng)級組件Acker實(shí)現(xiàn)對數(shù)據(jù)流的全局計(jì)算路徑的跟蹤,并保證該數(shù)據(jù)流被完全執(zhí)行。錯(cuò)誤的檢查是通過超時(shí)機(jī)制實(shí)現(xiàn)的,默認(rèn)的超時(shí)時(shí)間為30 s。很顯然,這么長的時(shí)延在流式應(yīng)用中顯得毫無意義了。
在系統(tǒng)容錯(cuò)方面,針對大數(shù)據(jù)流式計(jì)算環(huán)境中數(shù)據(jù)到來后立即進(jìn)行處理,重現(xiàn)數(shù)據(jù)往往很困難的客觀事實(shí),需要構(gòu)建一個(gè)輕量級、快速的系統(tǒng)容錯(cuò)策略,滿足大數(shù)據(jù)流式計(jì)算環(huán)境中對系統(tǒng)容錯(cuò)的要求。具體研究內(nèi)容包括:研究在不同應(yīng)用場景下的系統(tǒng)容錯(cuò)精度方案,并對具體案例進(jìn)行分析方面,主要是考慮用戶的具體應(yīng)用場景對容錯(cuò)精度的需求,進(jìn)行相應(yīng)容錯(cuò)精度方案的設(shè)計(jì);在建立有向任務(wù)圖故障節(jié)點(diǎn)最小依賴集合的容錯(cuò)策略方面,當(dāng)各個(gè)節(jié)點(diǎn)都進(jìn)行了中間狀態(tài)存儲(chǔ)、檢查點(diǎn)等信息的存儲(chǔ)后,在具體的故障恢復(fù)過程中,可以選用更加高效的故障節(jié)點(diǎn)、最小依賴集合的容錯(cuò)策略,將容錯(cuò)的范圍縮小到最小的節(jié)點(diǎn)集合中,如圖3所示。根據(jù)有向任務(wù)圖中各個(gè)節(jié)點(diǎn)及節(jié)點(diǎn)間上下游的關(guān)系以及每個(gè)節(jié)點(diǎn)所在的物理機(jī)器性能特征等多方面因素,為不同的節(jié)點(diǎn)設(shè)置有區(qū)分的、有差異的檢查點(diǎn)頻率以及不同的全量和增量式容錯(cuò)策略。
圖 3 故障節(jié)點(diǎn)最小依賴集合的容錯(cuò)策略
4 結(jié)束語
在大數(shù)據(jù)時(shí)代,隨著越來越多的應(yīng)用場景對時(shí)效性的要求不斷增強(qiáng),大數(shù)據(jù)流式計(jì)算作為大數(shù)據(jù)計(jì)算的一種形態(tài),其重要性也在不斷增強(qiáng)。本文針對大數(shù)據(jù)環(huán)境中流式計(jì)算應(yīng)用所呈現(xiàn)出的諸多鮮明特征進(jìn)行了系統(tǒng)化的分析,并從系統(tǒng)架構(gòu)的角度,給出了大數(shù)據(jù)流式計(jì)算系統(tǒng)構(gòu)建的原則性策略。結(jié)合當(dāng)前比較典型的流式計(jì)算平臺(tái),重點(diǎn)研究了當(dāng)前大數(shù)據(jù)流式計(jì)算在在線環(huán)境下的資源調(diào)度和節(jié)點(diǎn)依賴環(huán)境下的容錯(cuò)策略等方面的技術(shù)挑戰(zhàn)。在未來的工作中,將結(jié)合應(yīng)用場景的需求,開展系統(tǒng)架構(gòu)的優(yōu)化,改善整個(gè)系統(tǒng)的可擴(kuò)展性、穩(wěn)定性等多方面的特征。同時(shí),針對應(yīng)用的要求,開展上層應(yīng)用同系統(tǒng)架構(gòu)、數(shù)據(jù)流之間的動(dòng)態(tài)、彈性自適應(yīng)性的優(yōu)化。
作者,孫大為,中國地質(zhì)大學(xué)信息工程學(xué)院