大數據流式計算存在的挑戰

大數據流式計算系統存在諸多挑戰,如資源調度、系統容錯、動態時間窗口、高效索引策略等諸多方面。本文將從大數據流式計算系統架構的角度,針對當前大數據流式計算環境中存在的兩個方面的典型問題進行系統化的分析,即在線環境下的資源調度問題和節點依賴環境下的容錯策略問題,並原則性地分別給出了兩類問題的解決策略。

1. 在線環境下的資源調度

資源調度是分佈式系統中資源管理的關鍵與核心,也是NP難問題,制約着整個系統的高效運行。在大數據流式計算環境中,在線環境中的資源調度又更加困難,任何一個資源或要素的調整,都會對運行着的系統產生實時影響,也會對整個系統的穩定性帶來一定程度上的波動。

Storm系統作爲業界最具影響力的大數據流式計算系統,目前其所選用的資源調度策略爲輪詢方式,只是簡單地將有向任務圖中各個節點按照一定的拓撲序列放置到各個物理機器上去,這個調度策略沒有考慮物理機器的性能以及物理機器間的拓撲結構,沒有考慮有向任務圖中各個節點的計算壓力和節點間的通信壓力。

在在線調整過程中,這個調度策略沒有考慮當前各個節點的資源分配情況,也就是說在實現對新的環境優化和適應的過程中,沒有考慮儘可能地減少系統中節點的變動,提升系統的穩定性。這些因素的缺失,對於Storm系統的性能必然帶來一定程度上的損傷。

在資源調度方面,針對大數據流式計算環境中,應用均是通過有向任務圖進行描述的客觀事實,需要構建一個彈性、自適應的在線調度策略,滿足大數據流式應用一旦開啓將永遠運行下去的在線場景下的資源調度需要,即一方面要有效地適應數據流、資源等各方面的動態變化,另一方面也要保持系統的穩定性,避免因調整導致的系統大幅度波動,影響系統的穩定性。

具體包括以下內容:在有向任務圖節點計算量和節點通信量的量化方面,節點處理時延影響因素有邏輯節點的功能、數據處理功能、數據流流速大小等;節點間傳輸時延影響因素有節點間傳輸數據流大小、網絡帶寬,物理距離等。整個有向任務圖在任何一個時刻都會存在一條關鍵路徑,其時延也是由該圖的當前關鍵路徑決定的,關鍵路徑將是整個有向任務圖的核心和瓶頸,明確了當前的關鍵路徑,就可以找到改善系統性能的要害。同時隨着不同數據流壓力的變化,各個節點的計算時延和傳輸時延也會發生變化,這樣不同數據流壓力情況下的有向任務圖的關鍵路徑也會動態變化。

在有向任務圖到系統資源的放置策略以及在線調整方面,對於一個經過優化和調整後的任務拓撲結構的實例圖,隨着數據流和系統環境的在線和實時變化,以關鍵路徑爲核心,動態地調整任務拓撲圖中各節點實例在各臺物理機器間的分配策略(如圖1所示),可以實現對系統響應時間的顯著改善。同時,當數據流壓力發生變化後,只需要調整關鍵路徑上的部分節點,就可以實現對系統性能的改善,這樣就可以在儘可能地保持系統穩定性的前提下,最大程度地改善系統性能,在動態調整和優化過程中,實現對歷史成量信息的最大利用。

在多個有向任務圖分別被提交到系統中後,需要保證在不同時間點提交的各個有向任務圖可以公平地使用系統資源,這就需要明確各物理機器的計算壓力和拓撲結構、各個有向任務圖中節點的計算壓力和傳輸壓力,並通過一定的分配策略,實現資源的合理利用以及各有向任務圖間的資源公平佔有和動態調整。

在這裏插入圖片描述
圖 1 資源分配和動態調整

2. 節點依賴環境下的容錯策略

系統容錯是分佈式系統必不可少的一部分,特別是對於大數據流式計算系統而言,容錯的價值顯得尤爲突出。在大數據流式計算環境中,數據流到來後往往只有一次處理的機會,重放數據流是很困難的,甚至是不可能的。這僅有的一次機會給容錯帶來了更高的挑戰。另外,系統的實時性是大數據流式計算系統的首要目標,這也爲容錯策略提出了更高的要求,當高效的容錯策略需要過長的時延時,會導致容錯變得沒有意義。

Storm系統通過系統級組件Acker實現對數據流的全局計算路徑的跟蹤,並保證該數據流被完全執行。錯誤的檢查是通過超時機制實現的,默認的超時時間爲30 s。很顯然,這麼長的時延在流式應用中顯得毫無意義了。

在系統容錯方面,針對大數據流式計算環境中數據到來後立即進行處理,重現數據往往很困難的客觀事實,需要構建一個輕量級、快速的系統容錯策略,滿足大數據流式計算環境中對系統容錯的要求。具體研究內容包括:研究在不同應用場景下的系統容錯精度方案,並對具體案例進行分析方面,主要是考慮用戶的具體應用場景對容錯精度的需求,進行相應容錯精度方案的設計;在建立有向任務圖故障節點最小依賴集合的容錯策略方面,當各個節點都進行了中間狀態存儲、檢查點等信息的存儲後,在具體的故障恢復過程中,可以選用更加高效的故障節點、最小依賴集合的容錯策略,將容錯的範圍縮小到最小的節點集合中,如圖2所示。

根據有向任務圖中各個節點及節點間上下游的關係以及每個節點所在的物理機器性能特徵等多方面因素,爲不同的節點設置有區分的、有差異的檢查點頻率以及不同的全量和增量式容錯策略。
在這裏插入圖片描述

圖 2 故障節點最小依賴集合的容錯策略

在大數據時代,隨着越來越多的應用場景對時效性的要求不斷增強,大數據流式計算作爲大數據計算的一種形態,其重要性也在不斷增強。

在以上三篇文章中,針對大數據環境中流式計算應用所呈現出的諸多鮮明特徵進行了系統化的分析,並從系統架構的角度,給出了大數據流式計算系統構建的原則性策略。結合當前比較典型的流式計算平臺,重點研究了當前大數據流式計算在在線環境下的資源調度和節點依賴環境下的容錯策略等方面的技術挑戰。在未來的工作中,將結合應用場景的需求,開展系統架構的優化,改善整個系統的可擴展性、穩定性等多方面的特徵。同時,針對應用的要求,開展上層應用同系統架構、數據流之間的動態、彈性自適應性的優化。

參考文獻:

孫大爲. 大數據流式計算:應用特徵和技術挑戰[J]. 大數據. 2015年03期.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章