鄭志學
(河南工業和信息化職業學院 河南 焦作 454000)
近年來計算機技術高速發展,尤其是大數據技術在當前疫情環境下的大量運用,隨著阿帕奇(Apache)基金會發布的一款基于Hadoop云計算平臺開源項目的不斷更新,使得大數據的數據計算效率得到了質的提升,而Hadoop云計算平臺是以MapReduce框架為軟件系統架構,以分布式計算機硬件作為硬件支撐,通過MapReduce在指定的分布式計算機集群系統中進行海量數據集的處理工作,因此整個分布式集群系統的穩定性很大程度依賴于系統的故障預測的實時性和準確性[1]。目前針對分布式計算機集群系統的故障預測基本都集中在用戶使用期間所產生的故障問題采用的預測算法也較為傳統,常見的預測算法有比較回歸分析方法、支持向量機預測法、灰度模型預測法以及前幾項常用預測法的組合方法[2]。雖然不同的預測法都能夠對相應的情況進行一定量的預測,但是這些方法都只能對較為確定的用戶關注點進行預測,無法對其所關注的點中不確定的可變隨機值進行概率預測,尤其是在分布式集群運行過程中,往往由于系統運行環境的復雜性使得故障的產生也出現一定的隨機性,因此正是由于該值的不確定性使得傳統方式的預測結果都存在不同程度的偏差。
因此本文提出一種基于改進的時間序列算法進行分布式云計算集群系統的故障預測方法,將傳統的時間序列預測算法同極限學習機算法相結合,通過采集云計算系統集群運行時各種維度的信息,進而通過構建相應的模型進行系統故障的預測,最后通過搭建云計算集群實驗平臺來驗證最終的預測結果。
時間序列預測算法從本質上來說是一種回歸的預測算法,該算法的基本原理為:首先算法的基礎是承認事務發展的可延展性,通過運用以往的時間序列所產生的數據進行相關信息的統計與分析,進而根據用戶所關注的點推測事務發展的方向;其次在充分考慮事務發展存在偶然性因素的影響導致其可能產生的結果具備一定的隨機性,因此為了能夠有效地消除相關隨機因素的波動產生的不良影響,通過調查與研究事務歷史發展的相關數據,其前期預測所要收集的信息內容包括:收集與整合與事務相關的某種社會現象的歷史材料,通過對所收集的材料進行一定程度的糾錯與鑒別,將用戶關注的點形成數據進行數據量化,構成具有一定規律的數列,針對排序之后的數字序列,進而定位某些現象隨時間變化的特定規律,進而構建發展的模型,形成具備通用性的模式,以此通用性的模式來套用以后使用者所關注的現象特點,進而獲得一定準確率的預測結果。
(1)采集相關的數據資料,通過特定的方式進行整理,編寫成時間序列的數據資料,同時根據所形成的時間序列繪制成統計圖。通常情況下我們所關注的數據資料可以分為四大類:現象長期趨勢、季節變動、事務循環方式、事務的隨機不確定變動。
(2)對時間序列進行有效的分析。針對采集數據形成的時間序列要分析出哪些不同的因素共同作用引發的總和結果。
(3)根據各種變動求解時間序列的長期趨勢(T)以及與季節相關的時間變動(S)同時還要考慮事務的不穩定變動(L)的值,統計完成之后使用與之相匹配的數學模型來替代這些數據。
(4)根據時間序列資料求出相關的長期趨勢(T)以及與季節相關的時間變動(S)同時還要考慮事務的不穩定變動(L)的數學模型,之后通過該模型來預測事務的發展趨勢。
(5)針對某些不規則變動的相關預測值難以求出的情況,可以使用單獨求解長期趨勢與相關時間變動的預測值,通過兩者的乘積或者求和運算來獲取對應的預測值。
極限學習機(Extreme Learning Machine,ELM)是由南洋理工大學的Chee-Kheong Siew等人在2004年在IEEE國際交互會議上提出的,該算法的提出是為了針對反向傳播算法進行一定程度的優化和效率的改進,用來提升及其智能學習的效率以及相關參數的設定問題,從該算法被提出之后就引起了大量的關注。
極限學習機算法(ELM)僅僅只需要求解相關信息的輸出權重信息,因此該算法是一種基于線性參數(linear-in-the-parameter)的模式。
該算法的自我學習過程關鍵點在于全局層面上的極小值問題。當N組需要機器進行自我學習的數據采集完成之后,針對其中還隱含的層級節點個數為L和輸出層級節點個數為M的學習流程為:
系統隨機進行參數節點的分配工作:在系統進行計算的初始階段,SLFN的相關節點參數需要隨機生成,即輸入系統的相關數據和隨機生成的節點的參數要相互獨立。
系統根據輸入的節點數據進行隱含層的矩陣輸出:系統隱含的矩陣輸出,該矩陣的大小為N行和L列,該矩陣行數是根據輸入的所需要訓練的數據個數統計出來,該列數是根據隱含的層級節點計算出來,因此該系統輸出的矩陣從本質的特征上來說就是將用戶所需要的訓練個數N通過特定的方式映射到L個層級節點之上,最終獲取相應的結果。
系統通過矩陣來計算求解相應的權重輸出:該算法同其他預測算法的不同之處在于,該算法中的輸出層級節點是可以不存在誤差節點的信息,因此該算法的核心就是通過對輸出權重的計算獲取誤差函數最小的節點信息[3]。
首先采集云計算集群的系統使用時間、使用人數、并發訪問數作為時間序列預測模型的輸入量將采集的信息按照時間排列組成多組的隨機變量,在相等的時間間隔內按照系統設定的采樣率進行不間斷的采集。根據使用時間的向量、使用人數、并發訪問的人數來構建模型,通過構建的模型獲取長期趨勢(T),季節變動(S),循環變動(C),不規則變動(I)等參數,通過時間數列的組合模型來進行數據的預測,其中有使用加法模型Y=T+S+C+I (Y,T 計量單位相同的總量指標)(S,C,I 對長期趨勢產生的或正或負的偏差)來獲取相應的偏差值。將以上通過模型計算出來的不同維度的預測數據最為極限學習機算法的輸入,進而完成對系統故障的更為精確的預測。
(1)初始階段針對上一階段產生的相關故障維度的預測結果值,設定系統隱層節點個數為M,進而通過隨機函數產生對第i個隱層節點的相關權值的計算,進而通過系統設置相關的激勵節點的參數,根據矩陣變換計算出初始的權值。
(2)通過上層給出的預測結果選出部分作為系統訓練的樣本,依次獲取不同的樣本,先假設獲取的樣本數為k+1個。
(3)通過模型系統計算出相應的輸出權重的向量值為βk+1。
(4)對不同的維度數據依次進行重復的計算,獲取最終的預測結果。
本文實驗所采用的環境為i7處理器,4GB內存,500G硬盤的24臺電腦搭建而成的Hadoop云計算平臺,電腦之間的網絡采用300Mbit/s的網絡作為連接樞紐,其中Hadoop框架的為3.0版本。
實驗通過模擬云計算平臺環境下高并發的線程訪問,持續時間分別為2、4、8、16、24小時,依次統計該時間內系統所發生的故障,進而對相同的環境條件下使用改進后的時間序列算法的云計算集群故障預測結果進行比對,從實驗結果可以看出,改進后的故障預測系統能夠較為準確地預測相關的故障,并且能夠實時跟蹤故障的發展,從而能夠在可能發生故障之前有效地提醒相關管理員。
本文提出的一種基于改進的時間序列算法的云計算集群故障預測方法能夠有效地預測分布式云計算集群系統的故障發生并且通過實驗證明了該方法的可行性。