自我意識流
1.問題陳述
通過處理動態(tài)數(shù)據(jù),實時/流處理使您能夠洞悉業(yè)務并做出重要決策。
流處理中的挑戰(zhàn)-
為峰值負載過度配置資源可能很浪費,而配置不足可能會對流應用程序的性能產(chǎn)生巨大影響。
技術的最新發(fā)展導致大量數(shù)據(jù)需要嚴格的延遲約束的實時分析。
如何確定諸如內(nèi)存,磁盤或網(wǎng)絡帶寬之類的資源量。
與決策中的新數(shù)據(jù)相比,陳舊數(shù)據(jù)沒有任何用處。
我們正在嘗試構(gòu)建用于流處理應用程序的體系結(jié)構(gòu),該體系結(jié)構(gòu)可以自動擴展數(shù)據(jù)管道資源,從而具有自我意識。
2.現(xiàn)有架構(gòu)的約束
從云提供商的角度對云中有關資源擴展的大多數(shù)研究工作進行了調(diào)查,它們專注于Web應用程序,沒有考慮多個資源瓶頸。
盡管先前在資源自動擴展領域進行了研究,但是當前的SPE(流處理引擎),無論是開源的(例如Apache Storm)還是商業(yè)的(例如IBM Infosphere和Microsoft Azure中的流組件),都缺乏自動增長和收縮的能力。以滿足流數(shù)據(jù)應用程序的需求。
此外,先前關于自動縮放的研究集中于對資源進行反應式縮放的技術,這對于時間敏感的流應用程序可能會延遲縮放決策,這是無法接受的。
據(jù)我們所知,沒有或僅有有限的研究使用機器學習技術根據(jù)數(shù)據(jù)流工作負載的數(shù)據(jù)流特征來主動預測未來的瓶頸。
3.我們的解決方案–什么?為什么?
我們旨在識別和預測數(shù)據(jù)點的流入,以便我們可以在X的時間后了解什么是數(shù)據(jù)流入。如果系統(tǒng)能夠識別,那么它將能夠為其提供資源。
這就是為什么將其稱為“ 自我意識”流。
在此POC中,我們提出了一個三階段框架的愿景,該框架可以自動擴展云中SPE(流處理引擎)的資源。
工作負荷模型是使用數(shù)據(jù)流特征創(chuàng)建的。
工作量模型的輸出可預測未來的瓶頸。
做出資源的擴展決策。
4.自我意識流傳輸架構(gòu)
5.機器學習模型在這里提供幫助:
有多種機器學習模型可用。在這里,我們使用了ARIMA模型。
6.時間序列數(shù)據(jù)
資源的自動縮放是根據(jù)時間序列數(shù)據(jù)完成的。
7. ARIMA模型-救助者
一個 ARIMA模型 是一類統(tǒng)計模型分析和預測的時間序列數(shù)據(jù)。
ARIMA是首字母縮寫詞,代表自動回歸綜合移動平均線。它是對更簡單的自回歸移動平均線的概括,并增加了積分的概念。
ARIMA模型的參數(shù)定義如下:
p:模型中包含的滯后觀察次數(shù),也稱為滯后階數(shù)。
d:原始觀測值相差的次數(shù),也稱為相異度。
q:移動平均窗口的大小,也稱為移動平均的順序。
8.訓練模型
一個 ARIMA模型 進行訓練一些很好的數(shù)據(jù)量。
生成一些數(shù)據(jù),其中包含兩個字段,即時間窗口和每分鐘的消息計數(shù)。
9.遵循的方法
訓練機器學習模型。
將IoT流數(shù)據(jù)攝取到一些Kafka隊列中。
使用Spark結(jié)構(gòu)化流讀取流。
將“窗口”功能應用于具有一些預定義窗口長度和滑動間隔的傳入流。
加載經(jīng)過訓練的ARIMA模型,并將其與來自先前窗口的輸入流一起饋入。ARIMA模型將使用其參數(shù)對下一個值進行預測。
如果10到15次出現(xiàn)的預測值大于閾值,則為“異常”。
現(xiàn)在是時候做出反應了,這是令人驚訝的!
10.自動縮放
11.未來的改進
當前,該系統(tǒng)能夠?qū)崟r自動添加資源,將來可以對其進行增強以實時自動縮減資源。
在Web UI上發(fā)布消息,以通知用戶通過在Kafka Queue中添加更多主題并增加Spark作業(yè)實例的數(shù)量來增加資源分配。
執(zhí)行系統(tǒng)級代碼以獲取新的云計算機,并將其作為新節(jié)點添加到Kafka集群中。
執(zhí)行腳本以觸發(fā)由云服務提供商(例如AWS)提供的Autoscaling,并做出反應性決策作為預測性決策。
關注 CDA人工智能學院 ,回復“錄播”獲取更多人工智能精選直播視頻!