康尚欽,李 軍,葉何亮,李 嫚
(1.中國電信股份有限公司廣東研究院網(wǎng)絡(luò)發(fā)展研究部,廣東 廣州 510630;2.中國電信集團公司企業(yè)信息化事業(yè)部,北京 100032)
隨著電信全業(yè)務(wù)運營的發(fā)展和移動互聯(lián)網(wǎng)時代的到來,電信運營商傳統(tǒng)的聯(lián)機采集系統(tǒng)正面臨著海量數(shù)據(jù)采集和處理的壓力。運營商需根據(jù)業(yè)務(wù)需求和運營管理需要,構(gòu)建集約、高效的聯(lián)機采集系統(tǒng)[1]。本文研究如何通過分布式計算技術(shù)實現(xiàn)電信聯(lián)機采集系統(tǒng)的采集提速和處理能力提升,以及建設(shè)運營成本的降低。
計費采集系統(tǒng)從各個交換網(wǎng)元和業(yè)務(wù)平臺采集話單、賬單等數(shù)據(jù),完成處理、分揀,并提供給HotBilling、結(jié)算等系統(tǒng)進行后續(xù)處理。計費數(shù)據(jù)采集的方式分為在線采集、聯(lián)機采集、離線采集三種。聯(lián)機采集是數(shù)據(jù)采集的主要方式。聯(lián)機采集是指計費系統(tǒng)直接通過網(wǎng)絡(luò)實現(xiàn)聯(lián)網(wǎng)采集后付費數(shù)據(jù)源的采集方式,包括采集任務(wù)管理、采集上傳/下發(fā)、數(shù)據(jù)校驗、記錄采集日志、提交數(shù)據(jù)處理、回退處理等過程。
目前部分省級電信運營商的聯(lián)機采集系統(tǒng)存在硬件老化、設(shè)備分散、采集環(huán)節(jié)過多等問題,影響了話單的實時性,也給運營維護提出了較高的要求。隨著移動業(yè)務(wù)和增值業(yè)務(wù)的迅猛發(fā)展以及行業(yè)競爭的日益加劇,對計費實時性的要求越來越高,實現(xiàn)聯(lián)機采集系統(tǒng)的采集提速和集約運營成為緊迫的需求。在聯(lián)機采集系統(tǒng)集中和提速過程中,面臨一些問題有待解決:
(1)采集周期縮短,則單點采集能力需要提高數(shù)倍,并要將單文件串行處理變成并行處理,對采集進程性能要求很高。
(2)采集系統(tǒng)集中后,需要完成以前數(shù)百個采集節(jié)點的采集任務(wù),系統(tǒng)負荷急劇升高,同時峰值負荷將提高至數(shù)十倍。
(3)采集進程、話單處理進程、分發(fā)進程需要同時并發(fā),整個系統(tǒng)的并發(fā)進程數(shù)較多,系統(tǒng)資源均衡難度較大。
(4)所有話單數(shù)據(jù)集中存儲,并發(fā)訪問,易出現(xiàn)磁盤I/O瓶頸。
分布式計算技術(shù)將需要大量運算的問題分解成許多小的部分,把這些部分分配給許多計算節(jié)點去處理,最后把這些節(jié)點的計算結(jié)果綜合起來形成答案。分布式計算技術(shù)實現(xiàn)了分散資源的共享和跨計算節(jié)點的任務(wù)調(diào)度,為提升系統(tǒng)處理能力和橫向擴展能力提供了一種很好的方法。
Hadoop是Apache軟件基金會管理的一個項目,它是Google開發(fā)的用來支持互聯(lián)網(wǎng)級數(shù)據(jù)處理的MapReduce編程模型和底層文件系統(tǒng)GFS的開源實現(xiàn)[2]。Hadoop可以在大量廉價的硬件設(shè)備組成的集群上運行應(yīng)用程序,為應(yīng)用程序提供一組穩(wěn)定可靠的接口,旨在構(gòu)建一個低成本、高可靠性和高擴展性的分布式系統(tǒng)。
Hadoop主要由 Hadoop Common、HDFS、MapReduce 等子項目組成[3]。MapReduce[4]計算模型的出現(xiàn)極大地簡化了分布式程序的編寫,使用戶可以脫離細節(jié)的困擾,集中精力于任務(wù)本身的描述和實現(xiàn)。HDFS[5]是一個分布式文件系統(tǒng),設(shè)計用來部署在廉價的硬件上,提供高容量、高容錯性、高吞吐量的數(shù)據(jù)存儲。
Hadoop分布式計算框架可以很好地解決聯(lián)機采集系統(tǒng)集中和提速遇到的問題,主要體現(xiàn)在以下幾個方面:
(1)采用Hadoop框架將數(shù)百個CPU內(nèi)核組成強大的集群服務(wù)平臺[6],可以將系統(tǒng)的采集處理能力提升至單機的數(shù)百倍。
(2)采用Map-Reduce方式,可以將采集負荷壓力分散到數(shù)百個獨立節(jié)點,大大提升系統(tǒng)峰值處理能力[7]。
(3)通過Job均衡器方式可以調(diào)度所有進程的資源使用情況,從而保證采集資源合理使用,各個進程平滑運行。
(4)利用HDFS技術(shù),實現(xiàn)話單數(shù)據(jù)多節(jié)點分散存儲模式[8],每塊磁盤保證獨立訪問,從而避免了磁盤I/O瓶頸[9],同時整個系統(tǒng)的I/O帶寬擴展數(shù)十倍。
“分布式聯(lián)機采集系統(tǒng)”利用分布式計算平臺的并行計算和分散存儲的優(yōu)勢,實現(xiàn)并行話單采集、并行話單處理以及文件分布式存儲,提高了整個采集流程的計算處理能力,同時提升了文件大批量讀寫性能,從而提高了聯(lián)機采集系統(tǒng)的速度和效率。
分布式聯(lián)機采集系統(tǒng)邏輯架構(gòu)如圖1所示。系統(tǒng)主要由云計算[10]引擎、聯(lián)機采集云計算模塊和云采集管理監(jiān)控三部分組成。云計算引擎(Hadoop)分為HDFS、Map/Reduce和HIVE三部分,分別實現(xiàn)分布式文件系統(tǒng)、分布式并行編程與執(zhí)行、數(shù)據(jù)摘要與查詢[11]。聯(lián)機采集云計算模塊包括文件云存儲處理、采集并行、話單處理、數(shù)據(jù)分發(fā)子模塊,以及相應(yīng)的策略模板管理。云采集管理監(jiān)控模塊包括對系統(tǒng)性能、告警、配置、日志、用戶的管理,以及對底層引擎文件存儲、作業(yè)性能的管理和對HDFS、Map/Reduce的監(jiān)控。
圖1 分布式聯(lián)機采集系統(tǒng)邏輯架構(gòu)
系統(tǒng)的部署架構(gòu)如圖2所示,采用全省集中的一級模式。服務(wù)器按用途可分為采集組、管理組和分發(fā)組。采集組配置了3臺名稱節(jié)點和66臺數(shù)據(jù)節(jié)點。管理組配置了1臺管理服務(wù)器,用于采集業(yè)務(wù)及系統(tǒng)參數(shù)的配置管理;配置了1臺話單服務(wù)器,用于話單處理、話單查詢及業(yè)務(wù)監(jiān)控。分發(fā)組配置了2臺分發(fā)服務(wù)器和1臺磁盤陣列,可以在線存儲1個月的計費文件,用于系統(tǒng)數(shù)據(jù)分發(fā)。其中,2臺分發(fā)服務(wù)器采用負荷分擔、互為備份的工作方式,同時主/備分發(fā)服務(wù)器通過SCSI電纜連接到RAID5磁盤陣列。
圖2 分布式聯(lián)機采集系統(tǒng)部署架構(gòu)
分布式聯(lián)機采集系統(tǒng)的主要處理流程如圖3所示,分為配置采集作業(yè)、采集任務(wù)Map/Reduce、采集功能執(zhí)行、采集文件存儲、采集性能報告5個階段。
圖3 分布式聯(lián)機采集系統(tǒng)處理流程
在配置采集作業(yè)階段,分布式聯(lián)機采集系統(tǒng)根據(jù)聯(lián)機采集的業(yè)務(wù)要求,使用JobConf進行作業(yè)配置文件并制定采集任務(wù)功能Jar包,然后通過JobClient提交采集作業(yè)。
在采集任務(wù)Map/Reduce階段,系統(tǒng)由JobTracker負責將一個采集作業(yè)(Job)分配為多個采集任務(wù)(Task),根據(jù)各個節(jié)點的資源情況,JobTracker將Map/Reduce任務(wù)分配到各個 DataNode,并由 Task-Tracker調(diào)用Map子任務(wù),完成計費文件的并行采集。
在采集功能執(zhí)行階段,由于不同類型的交換機對應(yīng)的采集功能以及協(xié)議有所區(qū)別,因此需要將不同交換機采集功能模塊封裝在Utility庫中,從而支持所有交換機采集功能。TaskTracker將啟動采集任務(wù)中對應(yīng)的Jar功能包,Jar功能包將根據(jù)采集任務(wù)中配置的交換機類型,調(diào)用Utility庫中對應(yīng)的采集模塊,執(zhí)行采集流程,實現(xiàn)交換機計費文件的聯(lián)機采集。
在采集文件存儲階段,系統(tǒng)將不同采集任務(wù)(Task)采集到的CDR文件,存儲于內(nèi)存虛擬的本地緩存區(qū)(Buffer),TaskTracker調(diào)用Reduce任務(wù),自動掃描緩存區(qū),將采集完成的CDR文件進行數(shù)據(jù)分發(fā)并存儲到HDFS系統(tǒng),并向JobTracker匯報。
采集完成后,系統(tǒng)會報告采集任務(wù)執(zhí)行情況,可用于監(jiān)控和運營分析。報告內(nèi)容包含:
(1)采集性能,包含平均采集時長、最短采集時長、最長采集時長;
(2)預(yù)處理性能,包含平均時長、最短時長、最長時長;
(3)分發(fā)性能,包含平均時長、最短時長、最長時長;
(4)告警信息,包含告警信息、告警類型、告警時間、告警確認人和短信派發(fā)人。
通過以上的研究,可以看到,與傳統(tǒng)的集中處理型聯(lián)機采集系統(tǒng)方案相比,基于分布式計算的聯(lián)機采集系統(tǒng)方案具有以下優(yōu)點:
(1)提高了數(shù)據(jù)的可靠性。
基于分布式計算的聯(lián)機采集系統(tǒng)實現(xiàn)了話單數(shù)據(jù)的多副本存儲,并放置在集群的不同節(jié)點上,在提高數(shù)據(jù)訪問性能的同時,使話單數(shù)據(jù)的保存更加安全,即使某個節(jié)點的數(shù)據(jù)因故障出現(xiàn)丟失,也不會破壞話單數(shù)據(jù)的完整性。
(2)提高了采集處理的時效性。
由于采用了分散存儲、分散處理的模式,避免了集中處理模式下的數(shù)據(jù)傳輸和處理性能瓶頸,話單采集處理的時效性會有較大提升。測試表明,原有75%以上的采集節(jié)點采集周期接近15分鐘甚至更長,引入分布式采集系統(tǒng)后,可將采集周期縮短至5分鐘,針對部分交換機采用虛擬內(nèi)存技術(shù),可以將采集周期縮短至1分鐘。
(3)提高了系統(tǒng)的可擴展性。
集中處理型聯(lián)機采集系統(tǒng)通常需要通過垂直擴展的方式實現(xiàn)服務(wù)器處理能力提升,升級成本大于部署更多相對便宜的服務(wù)器,同時性能提升幅度也有一定的上限?;贖adoop的系統(tǒng)可以方便地通過增加數(shù)據(jù)節(jié)點提升處理能力,實現(xiàn)靈活、快速的水平擴展[12]。
(4)降低了建設(shè)和運營成本。
集中處理型聯(lián)機采集系統(tǒng)方案需要配置高性能的小型機及磁盤陣列。分布式聯(lián)機采集系統(tǒng)的節(jié)點服務(wù)器、管理服務(wù)器可部署在PC服務(wù)器上,數(shù)據(jù)節(jié)點可采用工控機,數(shù)據(jù)存儲在本機硬盤上。在相當?shù)挠嬎愫痛鎯δ芰ο?,分布式?lián)機采集系統(tǒng)方案的建設(shè)投資約為集中處理型采集系統(tǒng)方案的三分之一。
原有聯(lián)采設(shè)備包括采集機124臺、磁盤陣列37臺、管理終端22臺,共計183臺。分布式聯(lián)機采集系統(tǒng)方案含服務(wù)器73臺,大大減少了設(shè)備數(shù)量,一方面降低了維護管理難度和人員需求,另一方面減少了設(shè)備能耗。
(5)便于話單數(shù)據(jù)分析與挖掘。
利用Hadoop上的數(shù)據(jù)倉庫Hive[13],可以實現(xiàn)高效的海量話單數(shù)據(jù)查詢,還可以分析用戶話務(wù)特征,分析競爭對手用戶的行為習慣,為產(chǎn)品套餐設(shè)計、維系挽留和市場開拓[14]提供有效、及時的數(shù)據(jù)支撐。
利用Hadoop分布式計算框架可以構(gòu)建低成本、高存儲能力和高處理能力的聯(lián)機采集系統(tǒng),有效提升采集速度,并可提供海量話單數(shù)據(jù)的在線查詢及數(shù)據(jù)挖掘能力,為企業(yè)業(yè)務(wù)發(fā)展提供有效數(shù)據(jù)支撐。
[1]姚文勝,李嫚,喬宏明,等.云計算在運營商IT支撐系統(tǒng)領(lǐng)域的應(yīng)用研究[J].移動通信,2010,34(11):52-57.
[2]Apache.Hadoop[EB/OL].URL:http://hadoop.apache.org/,2012-09-07.
[3]程瑩,張云勇,徐雷,等.基于Hadoop及關(guān)系型數(shù)據(jù)庫的海量數(shù)據(jù)分析研究[J].電信科學,2010(11):47-50.
[4]Dean J,Ghemawat S.MapReduce:Simplified data processing on large clusters[C]//Proc.of OSDI’04.Boston,MA,USA,2004:10.
[5]Apache.Hadoop Distributed Filesystem[EB/OL].http://hadoop.apache.org/hdfs/,2012-09-07.
[6]曾理,王以群.Hadoop集群和單機數(shù)據(jù)處理的耗時對比實驗[J].硅谷,2009(19):55-56.
[7]陳全,鄧倩妮.云計算及其關(guān)鍵技術(shù)[J].計算機應(yīng)用,2009,29(9):2562-2567.
[8]Apache.HDFS Architecture[EB/OL].http://hadoop.apache.org/common/docs/current/hdfs_design.html,2012-09-07.
[9]李云桃.基干Hadoop的海量數(shù)據(jù)處理系統(tǒng)的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學,2009.
[10]Wikipedia.Cloud Computing[EB/OL].http://en.wikipedia.org/wiki/Cloud_computing,2011-12-20.
[11]Apache.Hadoop Cluster Setup[EB/OL].http://hadoop.apache.org/common/docs/current/cluster_setup,2012-09-07.
[12]Tom White.Hadoop:The Definitive Guide[M].O’Reilly,2010.
[13]程苗,陳華平.基于Hadoop的Web日志挖掘[J].計算機工程,2011,37(11):37-39.
[14]賈文娟.基于Hive分布式計算與數(shù)據(jù)挖掘的關(guān)聯(lián)性營銷的設(shè)計與實現(xiàn)[D].北京:北京交通大學,2011.