對于離線處理部分,離線存儲平臺負責(zé)對文件、對象、結(jié)構(gòu)化數(shù)據(jù)的存儲,服務(wù)于日志、網(wǎng)頁、關(guān)系鏈、多媒體、字典、數(shù)據(jù)庫等應(yīng)用,它的數(shù)據(jù)來源非常豐富。而離線計算平臺的數(shù)據(jù)一般來自離線存儲和在線存儲,計算結(jié)果往往也寫回離線和在線存儲平臺。離線計算平臺上的計算分為IO密集型、計算密集型、迭代型、類SQL型等類型,分別對搜索排序、廣告算法、個性化推薦、安全檢測等應(yīng)用提供支持。
這里不得不提的是用在離線處理中的任務(wù)依賴控制系統(tǒng)。在線處理的各系統(tǒng)由于基本上是數(shù)據(jù)流驅(qū)動或者是事件驅(qū)動的,所以不需要顯式地設(shè)置各個任務(wù)的上下游依賴關(guān)系,數(shù)據(jù)和事件的流式傳播即觸發(fā)了對應(yīng)的計算。而對于離線處理,各個任務(wù)都是批量處理的方式,因此需要等上游完成批量處理,下游才能開始接著處理。
現(xiàn)實中往往采用定時器+預(yù)估完成時間的方式來粗略地隱式地配置任務(wù)依賴,這樣帶來的問題是:
第一,預(yù)估時間不準確,造成時間的浪費或是無效的計算;
第二,上游的延遲會引起下游的連鎖反應(yīng),不具有彈性的容忍機制;
第三,隨著任務(wù)增多,依賴關(guān)系配置和執(zhí)行時間的預(yù)估變得越發(fā)復(fù)雜和不可控,而且任務(wù)遷移時很容易發(fā)生任務(wù)丟失和依賴失效的問題。任務(wù)依賴控制系統(tǒng)正是為了解決這些問題而誕生的,它把所有任務(wù)的依賴拓撲關(guān)系放到全局統(tǒng)一的視圖中,將這些任務(wù)集中起來管理,可視化地配置它們的依賴關(guān)系,任務(wù)的遷移變得簡單可靠。同時,它負責(zé)監(jiān)控每個任務(wù)的完成情況,如果成功完成,則馬上觸發(fā)下游的任務(wù);如果失敗,則進行重試,直到執(zhí)行成功才觸發(fā)下游任務(wù),或者超過重試次數(shù)閾值后進行告警。這種自動化的依賴觸發(fā)方式,縮短了整體業(yè)務(wù)耗時,并具有彈性容忍延時能力。
對于大數(shù)據(jù)處理來說,數(shù)據(jù)是素材,平臺是工具。工欲善其事,必先利其器。大數(shù)據(jù)各個層次的平臺已經(jīng)日臻成熟,我們對其原理與架構(gòu)也清晰明了。而海量數(shù)據(jù)中蘊含的巨大價值能否被有效挖掘,就看使用者們的功力了。