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