大數據流式計算系統存在諸多挑戰,如資源調度、系統容錯、動態時間窗口、高效索引策略等諸多方面。本文將從大數據流式計算系統架構的角度,針對當前大數據流式計算環境中存在的兩個方面的典型問題進行系統化的分析,即在線環境下的資源調度問題和節點依賴環境下的容錯策略問題,並原則性地分別給出了兩類問題的解決策略。微信
1. 在線環境下的資源調度網絡
資源調度是分佈式系統中資源管理的關鍵與核心,也是NP難問題,制約着整個系統的高效運行。在大數據流式計算環境中,在線環境中的資源調度又更加困難,任何一個資源或要素的調整,都會對運行着的系統產生實時影響,也會對整個系統的穩定性帶來必定程度上的波動。架構
Storm系統做爲業界最具影響力的大數據流式計算系統,目前其所選用的資源調度策略爲輪詢方式,只是簡單地將有向任務圖中各個節點按照必定的拓撲序列放置到各個物理機器上去,這個調度策略沒有考慮物理機器的性能以及物理機器間的拓撲結構,沒有考慮有向任務圖中各個節點的計算壓力和節點間的通訊壓力。app
在在線調整過程當中,這個調度策略沒有考慮當前各個節點的資源分配狀況,也就是說在實現對新的環境優化和適應的過程當中,沒有考慮儘量地減小系統中節點的變更,提高系統的穩定性。這些因素的缺失,對於Storm系統的性能必然帶來必定程度上的損傷。運維
在資源調度方面,針對大數據流式計算環境中,應用均是經過有向任務圖進行描述的客觀事實,須要構建一個彈性、自適應的在線調度策略,知足大數據流式應用一旦開啓將永遠運行下去的在線場景下的資源調度須要,即一方面要有效地適應數據流、資源等各方面的動態變化,另外一方面也要保持系統的穩定性,避免因調整致使的系統大幅度波動,影響系統的穩定性。分佈式
具體包括如下內容:在有向任務圖節點計算量和節點通訊量的量化方面,節點處理時延影響因素有邏輯節點的功能、數據處理功能、數據流流速大小等;節點間傳輸時延影響因素有節點間傳輸數據流大小、網絡帶寬,物理距離等。整個有向任務圖在任何一個時刻都會存在一條關鍵路徑,其時延也是由該圖的當前關鍵路徑決定的,關鍵路徑將是整個有向任務圖的核心和瓶頸,明確了當前的關鍵路徑,就能夠找到改善系統性能的要害。同時隨着不一樣數據流壓力的變化,各個節點的計算時延和傳輸時延也會發生變化,這樣不一樣數據流壓力狀況下的有向任務圖的關鍵路徑也會動態變化。post
在有向任務圖到系統資源的放置策略以及在線調整方面,對於一個通過優化和調整後的任務拓撲結構的實例圖,隨着數據流和系統環境的在線和實時變化,以關鍵路徑爲核心,動態地調整任務拓撲圖中各節點實例在各臺物理機器間的分配策略(如圖1所示),能夠實現對系統響應時間的顯著改善。同時,當數據流壓力發生變化後,只須要調整關鍵路徑上的部分節點,就能夠實現對系統性能的改善,這樣就能夠在儘量地保持系統穩定性的前提下,最大程度地改善系統性能,在動態調整和優化過程當中,實現對歷史成量信息的最大利用。性能
在多個有向任務圖分別被提交到系統中後,須要保證在不一樣時間點提交的各個有向任務圖能夠公平地使用系統資源,這就須要明確各物理機器的計算壓力和拓撲結構、各個有向任務圖中節點的計算壓力和傳輸壓力,並經過必定的分配策略,實現資源的合理利用以及各有向任務圖間的資源公平佔有和動態調整。學習
2. 節點依賴環境下的容錯策略大數據
系統容錯是分佈式系統必不可少的一部分,特別是對於大數據流式計算系統而言,容錯的價值顯得尤其突出。在大數據流式計算環境中,數據流到來後每每只有一次處理的機會,重放數據流是很困難的,甚至是不可能的。這僅有的一次機會給容錯帶來了更高的挑戰。另外,系統的實時性是大數據流式計算系統的首要目標,這也爲容錯策略提出了更高的要求,當高效的容錯策略須要過長的時延時,會致使容錯變得沒有意義。
Storm系統經過系統級組件Acker實現對數據流的全局計算路徑的跟蹤,並保證該數據流被徹底執行。錯誤的檢查是經過超時機制實現的,默認的超時時間爲30 s。很顯然,這麼長的時延在流式應用中顯得毫無心義了。
在系統容錯方面,針對大數據流式計算環境中數據到來後當即進行處理,重現數據每每很困難的客觀事實,須要構建一個輕量級、快速的系統容錯策略,知足大數據流式計算環境中對系統容錯的要求。具體研究內容包括:研究在不一樣應用場景下的系統容錯精度方案,並對具體案例進行分析方面,主要是考慮用戶的具體應用場景對容錯精度的需求,進行相應容錯精度方案的設計;在創建有向任務圖故障節點最小依賴集合的容錯策略方面,當各個節點都進行了中間狀態存儲、檢查點等信息的存儲後,在具體的故障恢復過程當中,能夠選用更加高效的故障節點、最小依賴集合的容錯策略,將容錯的範圍縮小到最小的節點集合中,如圖2所示。
根據有向任務圖中各個節點及節點間上下游的關係以及每一個節點所在的物理機器性能特徵等多方面因素,爲不一樣的節點設置有區分的、有差別的檢查點頻率以及不一樣的全量和增量式容錯策略。
在大數據時代,隨着愈來愈多的應用場景對時效性的要求不斷加強,大數據流式計算做爲大數據計算的一種形態,其重要性也在不斷加強。
在以上三篇文章中,針對大數據環境中流式計算應用所呈現出的諸多鮮明特徵進行了系統化的分析,並從系統架構的角度,給出了大數據流式計算系統構建的原則性策略。結合當前比較典型的流式計算平臺,重點研究了當前大數據流式計算在在線環境下的資源調度和節點依賴環境下的容錯策略等方面的技術挑戰。在將來的工做中,將結合應用場景的需求,開展系統架構的優化,改善整個系統的可擴展性、穩定性等多方面的特徵。同時,針對應用的要求,開展上層應用同系統架構、數據流之間的動態、彈性自適應性的優化。
參考文獻:
孫大爲. 大數據流式計算:應用特徵和技術挑戰[J]. 大數據. 2015年03期.
相關閱讀:
如欲申請產品試用,歡迎添加先薦小助手微信號(ID:recsysfc)。
本帳號爲第四範式智能推薦產品先薦的官方帳號。帳號立足於計算機領域,特別是人工智能相關的前沿研究,旨在把更多與人工智能相關的知識分享給公衆,從專業的角度促進公衆對人工智能的理解;同時也但願爲人工智能相關人員提供一個討論、交流、學習的開放平臺,從而早日讓每一個人都享受到人工智能創造的價值。