賀 涌,王 磊,李立秋,陳善貴
(1.太原理工大學,山西 太原 030000;2.中國礦業大學,江蘇 徐州 221000)
信息量的日益劇增,信息處理方式也在發生重大變化。云計算是一種新型的商業計算模型,通過該方法,用戶可以在不了解云機構的狀態下,對終端用戶展開大量計算。在大多云平臺軟件中Hadoop應用性更強。Hadoop為一種開源計算框架,能夠實現分布式存儲,目的是保證所有數據集群不間斷地給用戶供應計算服務與分布式儲存。但目前Hadoop平臺局限于處理少量大文件,無法高質量處理大量小文件的情況,導致高負載量環境下Hadoop經常出現資源處理異常現象,使運作效率變慢,計算質量變低。對此國內外學者提出了以下幾種解決方法。
文獻[1]構建Hadoop云體系下的資源信息狀態監測模型。利用資源匹配算法和信息挖掘算法將Hadoop內的資源信息進行關聯性整合,在Hadoop平臺內構建用戶多元信息資源接口機制,利用虛擬化技術分類資源云信息,利用接口機制監測高負載量Hadoop資源情況。但是該方法需要單獨構建接口機制,并且該機制的構建過程耗時較長,導致對Hadoop進行監測時出現整體效率過低的問題。文獻[2]提出了一種高負載量Hadoop資源多層監測方法。首先分層處理Hadoop,分析應用層對象、網絡傳輸層對象、用戶層對象、表示層對象和服務層對象,獲取各個層次之間的閾值,并實現融合處理,完成對Hadoop的資源監測。但是該方法沒有構建出符合與閾值匹配的檢測系統,導致監測結果誤差較大。文獻[3]提出了一種基于自適應反饋調度的高負載量Hadoop資源監測方法。融合Hadoop資源節點與作業的性能信息,在反饋調度器上啟動動態資源類似度監測方案,有效識別集群執行能力差異,根據服務器作業任務需求對Hadoop的資源信息高負載量進行動態監測。但該方法需通過實時檢測數據,而個別平臺沒有此功能,導致該方法具有局限性。
針對上述問題,提出新的高負載量移動服務器Hadoop資源信息智能監測方法。利用時間序列將Hadoop資源分化至多種資源訪問序列中,計算高負載系數,獲取特征向量集向量,完成高負載量移動服務器Hadoop資源信息智能監測。仿真結果驗證了,論文新方法能夠實現Hadoop高負載量的低能耗監測,并且效率較高,時延問題得以明顯改善。
當前,Hadoop的構造過程模型如圖1所示。

圖1 移動服務器Hadoop結構模型
Hadoop中含有一種jobTracker節點,主要對Hadoop實行任務監測、資源管理和調度。其中含有多種slave節點,處理全部的MapReduce任務[4]。當用戶遞交新任務時,通知NameNode節點,再將用戶的任務數據使用Na-meNode儲存到云平臺中,隨后將要進行處理的數據導入Hadoop里,同時儲存到Slave節點中。在運行Slave節點時,將心跳信息輸送至job-Tracker中,jobTracker收到心跳信息后會依據預處理數據的規劃情況,向具體的Slave節點分配Map/ReduceTask。Slave運行時,會每隔一段時間向job-Tracker傳輸心跳信息,jobTracker憑借集群中資源和Slave傳輸的心跳信息情況,向Slave節點發放任務。
通過jobTracker中資源管理過程和任務監測的分析,可以證明Hadoop的資源管理是隨著指定調度將新任務規劃至負荷的TaskTracker內進行處理。但在Hadoop集群里,jobTracker節點只有一個,因此會出現JobTracker負載超重的狀況,致使jobTracker的處理速度降低,導致Hadoop集群[5]的整體運作速度緩慢。例如Hadoop平臺默認監測器,在JobTracker對資源進行監測時,經調整完成的TaskScheduler接口與JobQueueTaskScheduler類型的實例assignTasks方法,可以對資源監測和任務進行展開。從上圖1可以得知,假使存在可單獨對Hadoop任務文件監控的方法,便可降低JobTracker的負擔,提高工作效率。
利用時間序列將收集到的Hadoop資源進行消耗分化至多種資源的訪問序列中,再分化有序資源到資源集合中,從而建造一種尺寸固定的有序結合。并分析序列類似度,進而估算不同序列內的類似值。而計算最鄰近節點方法,可以估算出高負載系數的序列,最后劃分出集合中的高負載序列。

圖2 資源訪問序列劃分流程
對高負載Hadoop的分布式平臺信息資源進行訪問時,集群內信息資源消耗出現緩慢增長趨勢,需要將Hadoop集群中資源使用狀況通過時間序列[6]進行模式代替。本文使用四元組(t,b,k,l)代表Hadoop集群資源消耗模式,其中t代表橫坐標,即采集時間;b代表縱坐標,即Hadoop集群資源消耗總數;k為斜率,即兩個采集時間點的Hadoop資源利用變化曲線斜率;l即兩個采集時間的間隔Hadoop資源消耗線段大小,以此構建Hadoop集群資源信息消耗時間變化曲線。在該四元組內,擬定含有時間點(t1,b1)和(t2,b2),假如采集時間間隔類似,資源消耗線段尺寸隨著斜率k而變化
(1)
通過式(1)可以看出,Hadoop資源消耗線段大小是l經過斜率k和時間的間隔來判斷的,而l變量里不含有特殊意義,因此該四元組可以使用二元組(b,k)進行消除。因有序時間序列組合是利用多種時間序列向量組合建造的,而線段模式[7]是由相鄰的序列點構成的,所以多種線段模式可以代替時間序列,進而能夠劃分所有Hadoop集群資源消耗的時間序列。

(2)
為了找出兩個序列的高負載狀況,需使用區域的序列密度分布[9]表示高負載狀況。設定兩種區域和序列最相似的鄰居密度高于某種臨界值,證明近鄰與該序列類似,相似度越高表示鄰近值越大,反之鄰近值越低。計算高負載系數公式為
(3)
其中,P(s)代表時間序列s的均衡可達長度,其值越小,表明密度越高,高負載的幾率就越小,d(s,c)代表c序列至s序列中的長度,N(s)就是指序列s所在的時間序列集合。
Hadoop集群內資源信息所消耗的數據關鍵點是通過集群內硬盤、CPU進行處理的。其中CPU信息資源消耗被分布式估算影響,能量消耗被分布式儲存[10]影響,則需利用硬盤與CPU的差異轉變,對Hadoop的資源信息的高負載異常消耗進行監測。內存資源的消耗主要是被MAP/Reduce的分布式計算干擾,因此可以通過大范圍分布式的計算差異,評測內存中的資源消耗高負載情況。硬盤資源的消耗主要受分布式儲存的影響,通過獲取文件輸送的硬盤資源消耗與差異數據來測評。
使用時間順序對n個資源[11]的特征向量進行監測,監測完成后,將第一種特征向量內的n種有序向量集合內取出,通過第n+1中的特征向量憑借順序引入此集合內,具體過程如圖3所示。

圖3 基于時間的資源消耗監測模型
在時間序列資源消耗模型中,具有n種資源消耗的特征向量。本文將特征向量設定為一種最近鄰類似值分析法中的目標,通過上述目標對n個特征向量內的局部高覆蓋系數進行計算,最終對某個時間點的信息資源消耗異常狀況進行分析。
對局部資源消耗異常分析,先把n個局部資源信息消耗特征向量進行整理,構造資源信息消耗特征向量集合{t1,t2,…,tn}。本文使用n×n的特征矩陣代替所有特征向量間的尺寸
(4)
式中傳入是憑借時間順序收集到的Hadoop集群資源信息消耗特征向量集{t1,t2,…,tn},將n擬定為集群里的特征向量,傳輸為有差異的特征向量。具體步驟如下:
1)采用特征向量集所獲取的n種特征向量,轉換成n×n的特征矩陣;
2)收集一種特征向量,
再計算特征向量的最近鄰。
3)對特征向量中的局部密度進行計算,再估算差異系數。當差異系數大于閾值時,將該特征向量標記為高負載點,把該向量加入差異特征向量結果中并轉至2)。閾值大于融入該差異系統的數值時,則表示該特征向量是否為向量集內第n個特征向量,如果是則轉至4),反之跳轉至2)。
4)傳輸高負載特征信息監測結果,算法完成。
在特征向量矩陣里,t12為特征向量t1與t12的大小,tnn表示特征向量tn到自身的長度,距離為零,該矩陣是對稱矩陣,主對角線的值為零。利用矩陣可以得知,ti到n種近鄰間的距離是[ti1,ti2,…,tin],對該長度集合進行排序,獲取k種值,通過k值能獲取ti的k個最近鄰居。使用局部的密度公式對ti的值進行估算,估算的值越大,表明類似的目標越多。而時間點越小的資源,則表明局部可達密度越小,其類似的目標越少,該時間點信息資源異常[12]的幾率越大。
仿真環境為Intel Celeron Tulatin1GHz CPU,硬件環境為384MB SD內存,軟件環境為MATLAB6.1。

圖4 Hadoop資源信息智能監測環境
為了證明本文方法對Hadoop高負載的監測性能,實驗與文獻[1]、文獻[2]及文獻[3]方法進行對比測試。本次實驗擬定實驗內Slave節點并非考慮的關鍵點,所有Slace節點的處理效率是1000MIPS。該Hadoop集群內含有20種節點。將任務Task所需要的指令尺寸設置在70000MIPS,原始實驗數據如圖5所示。
為測試不同方法對Hadoop高負載的監測能耗,設置從1000~10000個移動設備運行時,對比消耗功率的大小。實驗結果如圖6所示。

圖6 不同方法下監測能耗對比
根據圖6數據可知,隨著移動設備數量的增加,所有方法的能耗均隨之增加。其中文獻[1]方法與文獻[2]方法能耗變化趨勢相近,在移動設備數量為10000時,能耗達到350kW。文獻[3]方法能耗較前兩種方法略低,在移動設備數量為10000時,能耗約為347kW。本文方法能耗最低,在移動設備數量為10000時,能耗為253kW。說明本文方法對Hadoop高負載監測的能耗低,更具有使用性。
為驗證不同方法的處理效率,在相同數據環境中測試平均請求響應時延,實驗如圖7所示。

圖7 不同方法下平均請求響應時延
根據圖7數據可知,文獻[1]方法與文獻[2]方法的響應時延變化趨勢相近,隨移動設備數量的增加而增長,當測試數量最大時響應時延達到340ms。文獻[3]方法的響應時延也隨設備數量增加而增長,設備數量最大時響應時延為280ms。本文方法的響應時延在測試期間均保持在4ms左右,說明該方法檢測效率高。
為解決Hadoop常出現高負載問題,本文提出高負載量移動服務器Hadoop資源信息智能監測方法。分析Hadoop資源序列類似度,計算高負載系數,獲取特征向量集向量,完成高負載量移動服務器Hadoop資源信息智能監測。通過仿真對比實驗證明,新方法能夠有效的對Hadoop高負載量進行監測,且能量消耗低,效率高。在今后的研究中需進一步考慮降低監測成本問題,解決該領域更多難點問題。