摘要:針對電信大數據處理系統中存在的問題,文章提出一種基于Spark on Yarn模型的SY-TPP。在SY-TPP平臺上,應用Hadoop2.0 Yarn標準,并利用Spark分布式存儲技術,將SY-TPP系統的數據在內存中進行集中處理。以分級聚類算法為案例,對SY-TPP平臺的開發過程進行了詳細的分析。實驗結果表明,TPP平臺上的GB級用戶可以在半個工作日內完成數據處理,而32個實體節點的sYTPP系統的速度比相同配置下的Map Rcduce平臺提高了10.25倍。
關鍵詞:電信;大數據處理;Spark on Yarn模式
中圖法分類號:TP311 文獻標識碼:A
1 引言
Map Reduce 的首個版本是MRvl, 而Yarn(Yeanother resource negotiator) 在一定程度上彌補了MRv1 的不足。MRv2 的Yarn 可以被看作是一個專門針對大數據處理的資源分享架構, Yarn 的一個更好的實現方式是Spark On Yarn,這是由于Spark OnYarn 能夠最大限度地存儲數據,發揮Spark 的分布式存儲能力。本文對其設計思路和具體實施流程進行了詳細的介紹,其在通信領域中的應用性能優于以往的串行運算和Map Reduce。
2 SY?TPP 平臺的設計思路
2.1 總體設計思想
SY?TPP 是一個云計算平臺,若要實現服務理念,則必須將互聯網上的虛擬資源按照租用的形式提供給用戶,盡可能地將大數據碎片集中到存儲器或本地磁盤上,并減少子任務重啟或存取磁盤的I/ O 開銷。
在功能實現上,將SY?TPP 分為4 個模塊:存儲和訪問、資源分配和調度、應用執行、用戶。其主要功能包括在自治區域中共享閑置計算資源、處理電信大數據應用、電信數據分級聚類算法、電信數據分類算法等。
2.2 大數據存儲與訪問模塊
該模塊充分發揮了Hadoop 框架的優點,由于Hadoop 的分布式檔案管理系統能夠儲存大量的資料,使得大量的資料能夠跨越多個實體的節點。但Hadoop 中的MapReduce 規格也有一些限制,即每次啟動都需要消耗大量的磁盤資源,導致系統的運行速度會越來越慢,而Spark 的內存架構則會讓整個系統的數據存儲和存取能力得到極大的提升。
2.3 資源分配與調度模塊
基于上述分析,由于云計算采用了虛擬化技術,在資源分配和調度方面,其子任務以一種虛擬機形式存在,在一些文獻中被稱為“工作單位”,它可以在實際的實體節點上運行多臺虛擬機器(工作單位),因此需要考慮調度策略、容錯策略等。
調度策略所要解決的問題就是如何將虛擬機分配到最適合的實體節點上,并需要采用某種策略。比如,要考慮物理節點的負載最小、物理節點的可靠性最高、物理節點的硬件配置最高、CPU 使用率最小等。
最好的效果是通過虛擬機器,可以讓SY?TPP 平臺在最需要的實體上進行動態的定位。因此,在SY?TPP環境中,虛擬機的排程是一個非常關鍵的問題。
在SY?TPP 系統中,一些物理節點由于故障而退出,因此需要進行資源配置和調度,以保證系統整體的正常運轉。基于此,SY?TPP 平臺采用了冗余的方法和高效的策略,即數據的冗余度和分布式存儲,以確保數據的可靠性。
3 平臺業務功能需求說明
3.1 解析數據說明
在這個平臺中,最主要的輸入文件就是大量的LTEMR 測試報告,其描述如下。
在TD?LTE 系統中,3 GPP 技術標準作為一個系統的重要組成部分,它的作用是顯而易見的。這種測量報告可以定期上報,也可以根據事件向系統匯報,定期上報的話,會根據時間的長短自動上報,若以事件為基礎,則不會給出這樣的定義。測量報告是由真正的使用者提供的,這樣可以讓使用者更好地掌握網絡的運作。通過對數據的統計與挖掘,可以對大量的網絡問題進行分析。測量數據比路測有較多優勢,其采集費用低,且數據量大,即使是在不能到達的地方,也能得到相應的信息。
測量報告中所使用的數據,一般都是從手機和社區中收集到的,或者是系統計算出來的。初步收集的測量報告資料在傳送至OMC?R 后,將對其進行一系列的處理,以產生MRO 及MRS 檔案。
3.2 數據解析功能模塊
數據分析模塊包含2 部分。(1)指定城市的名字和時間,然后從相應的hdfs 文件中提取出相應的Mro文件,并進行分析,以便于后續的數據分析,在分析時,還會進行一些簡單的運算。(2)在確定城市的名字和時間后,從相應的hdfs 目錄中提取該地區的mrs 文件,并根據需求生成相應的文件,將相應的數據存儲在目錄中。2種功能均由spark 集群直接完成,所有的文件資料都存儲在hdfs 集群中,并使用scala 程序進行分析。
4 基于復雜網絡大數據處理
4.1 靜態數據研究
電信業務的數據結構是隨時間而變化的,是一種典型的多維數據,其主要目的是使某一段時間內某一城市、某一地區的通話形成一個典型的網絡。本文從度與度分布、平均路徑長度、群集系數3 個方面展開。
“度”的含義是指與這個網頁節點相關聯的其他網頁節點的數量。在實際的通信數據研究中,主要是指一個人與另一個人通話的數量。在一個用戶節點中,呼出和呼入的次數可以劃分為出度和入度。所有用戶節點的平均值叫做網絡的平均度。從復雜網絡的角度來看,不管是出度還是入度的大小,都與用戶的重要程度有直接關系。每個用戶節點都具有很高的輸出和進入度,是網絡中的核心節點,需要通過這些節點把其他用戶連接起來[1] 。
在復雜網絡中,平均路徑是衡量網絡中2 個節點間最小邊數目的一個重要指標。平均路徑長度是衡量網絡傳送能力的一個重要指標,擁有更短的路徑長度可以減少發送時延,并在網站查詢中起著關鍵的作用,以上所述的網絡平均路徑長度為4.2,平均每月的網絡直徑約20,而總網絡直徑約為15,這就說明此網絡的結構緊湊,能夠確保使用者在最短時間內找到所需之物。
聚類系數用來表示一個網絡連結的集合程度,即網絡連結的密集程度。在網絡連結中存在多個鄰近節點時,其鄰近節點間亦有可能為鄰居。Watts 和Strogatz 首先發現很多網絡的聚集系數遠大于相同節點規模的隨機網絡。
4.2 動態數據研究
電信企業的大數據分析具有獨有的特色,即用戶行為具有強烈的“生命周期”特性,而時間演進是通信業務數據復雜網絡化的內在特性,任何一個網絡都會隨著時間的推移而發生變化,但數據分析不能以秒、分、時等單位來進行。由于單位數據的數量是非常有限的,因此要把握客戶的核心業務價值,并制定出相應的市場戰略,從而對每一個通話所產生的數據進行分析。
將以上資料輸入到一個復雜的網絡分析軟件中,包含通話日期、通話時長及基地臺信息。經計算后,可以得到許多使用者對網絡資料使用者的分析。首先,其具有明顯的聚集效應,他們的通話概率是普通用戶的2~3 倍,活躍程度越高,在網好友數量越多,離網的可能性就越低。其次,挖掘出用戶的一些特點和喜好,有利于了解用戶的消費習慣,制定不同的套餐,減少運營成本。最后,根據基站數據資料,可以判斷出使用者的活動區域及負荷情況,從而為電信公司做好基站的建設規劃。
4.3 社團挖掘研究
復合網絡社團是指,在一個網絡中可以把1 個頂點劃分為若干個群,其中1 個頂點之間的聯系比較緊密,而多個頂點之間的聯系非常少。在通信企業的數據分析中,社團組織是一個非常關鍵的環節,是理解通信企業整體結構與功能的一個重要手段。對于通信運營商來說,盡管組織規模和數量都不清楚,而且成員數量也會隨著時間的推移而發生變化,但是網絡的組織結構具有明顯的層次性,可以看到高、低密度的社團組織。
當前,很多基于復雜網絡的社團網絡分割算法都是在K?means 的基礎上發展起來的。K?means 經典算法的基本思路是:將k 個點集中在一個空間上,然后根據距離最近的物體進行分類。采用迭代法,對各個簇中心進行逐次更新,直到獲得最佳的聚類效果。在通信大數據環境中,K?means 算法在分類效果、實際運行時間等方面具有很好的應用價值。根據以上資料對K?means 算法的社團劃分進行分析,得出3 個包含59 個、29 個和6 個用戶的明確組織[2] 。
5 SY?TPP 平臺的設計
5.1 Spark 內存計算框架的選取
在SY?TPP 平臺上進行模塊的設計,需要選用適當的程序模型來完成,本文選取雅恩(Map ReduceMRv2)和Spark 存儲器的運算方式。
Spark 架構和Hadoop Yarn 的組合使得大數據處理的效率更高。關于Spark 網絡,目前已經有了大量的文獻描述。Spark 是一個開放源碼的云計算平臺,其核心部分可以和Yarn 云平臺結合。其工作原理是將Spark 作為一個應用程序在Yarn 平臺上運行。要注意的是, Map Reduce 只是與DryaLINQ 以及Google的Map Reduce 一起使用云計算程序,但其源代碼通常不對外公開。
5.2 SY?TPP 各個模塊的實現
在海量數據的存儲和存取方面, Yarn 將利用HDFS 技術對電信大數據進行存儲,Hadoop2.0 保留了命名節點和數據服務器節點。
完成任務的分配和調度,SY?TPP 平臺還參照Yarn的規格,使用RM,Application Master (AM)和Yarn 技術報告的細節。在Yarn 的規格中,應用程序執行模塊的實現是Yarn 規范中的節點管理器NodeManager 和容器管理器Container,具體的說明請參閱Yarn 的網站。
Yarn 的應用程序控制器Master 還負責監視和追蹤應用的運行狀況,同時還負責客戶機模塊的工作。
5.3 大數據處理工作機制
以電信大數據分類聚類算法為實例,對SY?TPP系統的工作過程和代碼進行了分析。假定相似度分類聚類的迭代次數為K 次。
由于SY?TPP 平臺存儲計算Spark 架構,因此還需要考慮Spark 和Yarn 的融合問題。Spar 在資源管理與作業調度中的一個模式就是Spark on Yarn,使用Yarn 模型來實現它也很簡單。
Spark on Yarn 模式也包括主控和工作人員。用戶編寫是將Spark 作為Yarn 平臺的一種特定的應用,通過Spark 將其與Master 相連接,并對每個RDD 進行操作[3] 。
6 SY?TPP 平臺的實現
6.1 大數據應用的選取
在通信大數據中,很難在一定的時間內對用戶的行為進行分析,因此,可采用Spark on Yarn 模式下的SY?TPP 進行計算,并將其與傳統的單機串行運算和Map Reduce 算法相比較。
6.2 硬件環境的配置
基于對SY?TPP 系統的設計及實施和HadoopYarn 架構的研究,本文采用基于網絡中心的PC 平臺,其具有較高的帶寬、穩定性和空閑率,非常適合大數據處理的測試。
在硬件配置上,SY?TPP 有33 個真實PC 的物理節點,其中Intel 3.0 GHz 4 核心,8 GB 內存,l TB 硬盤,2?千兆網絡端口;工作機節點CPU 型號是3.0GHz,8 GB 內存。硬盤的容量是1 TB,而交換機是每秒1 000 兆字節。
6.3 軟件環境的配置
在軟件配置上,部署Master 機1 個、Worker 機32個。在安裝好操作系統后,會對Spark on Yarn 模式進行JRE1.6 版和1.4 版Spark 配置。該軟件完成了HDFS 文件和Yamn 的規格[4] 。
6.4 實驗結果與討論
一份15 GB 的文件,13 250 秒的通信運營商的用戶行為數據,能夠滿足科研人員的工作時間,并且超過了Map Reduce 的舊軟件。加速速度隨工作臺數目(n)平穩上升,盡管與線性增長還有一段距離,但計算速度卻小于Map Reduce。
在SY?TPP 中,多個物理節點可以有效降低數據傳輸速度,這表明SY?TPP 在通信領域中的數據處理速度快,優于Map Reduce。這是因為Spark 的存儲器運算大部分都是為高數據應用而設計的,這樣可以降低MapReduce 中的存取硬盤和虛擬機的啟動費用。
7 結束語
本文SY?TPP 并不是為通信產業的具體應用而設計,其他高效能的數據密集型應用也可以在SY?TPP平臺上進行。在Hadoop2.0 的Yarn 技術規范中,還需進一步對其進行優化,將SY?TPP 平臺配置到廣域網或者因特網中進行測試。
參考文獻:
[1] 張瑞.基于復雜網絡的電信大數據處理研究[J].現代情報,2014,34(6):66?69+74.
[2] 楊玉,張遠夏.Spark on Yarn 模式的電信大數據處理平臺[J].福建電腦,2019,35(3):34?38.
[3] 曲榮波.基于復雜網絡的電信大數據處理研究[J].信息記錄材料,2016,17(6):19?21.
[4] 張思航.基于Hadoop 的電信大數據處理的研究及應用[D].北京:華北電力大學,2017.
作者簡介:紀貴( 1975—), 本科, 研究方向: 大數據技術、云計算技術。