聞劍峰,石屹嶸
(中國電信股份有限公司上海研究院 上海200122)
為了提高電信行業(yè)的工作效率和服務(wù)質(zhì)量,建立靈活的營銷機制,推動新業(yè)務(wù)的開展和適應(yīng)激烈的市場競爭,商業(yè)智能(business intelligence,BI)開始進入電信行業(yè)。BI應(yīng)用在電信行業(yè)又稱作電信數(shù)據(jù)分析系統(tǒng)。隨著電信全業(yè)務(wù)運營時代的到來,電信傳統(tǒng)的數(shù)據(jù)分析系統(tǒng)正面臨著海量數(shù)據(jù)處理的壓力,亟需根據(jù)自身的管理需求和市場競爭需要,構(gòu)建適合于自身管理特點的電信數(shù)據(jù)分析系統(tǒng)。本文研究的目的是如何利用分布式計算技術(shù)實現(xiàn)電信數(shù)據(jù)分析系統(tǒng)的業(yè)務(wù)處理加速,進而提高系統(tǒng)性能,加強決策水平。
隨著電信業(yè)務(wù)的快速發(fā)展以及市場競爭的挑戰(zhàn),數(shù)據(jù)分析平臺作為各級領(lǐng)導(dǎo)制定策略的重要參考以及市場部門進行推廣計劃的重要依據(jù),數(shù)據(jù)分析相關(guān)業(yè)務(wù)的重要性和應(yīng)用價值不斷提升。
隨著數(shù)據(jù)分析業(yè)務(wù)數(shù)據(jù)量的快速增加,分析維度的擴展,某些業(yè)務(wù)已經(jīng)出現(xiàn)明顯的性能瓶頸,妨礙數(shù)據(jù)業(yè)務(wù)分析在電信業(yè)務(wù)發(fā)展和市場競爭中發(fā)揮更大的作用。數(shù)據(jù)分析業(yè)務(wù)的性能瓶頸主要表現(xiàn)在以下3個方面。
·海量數(shù)據(jù)挑戰(zhàn):數(shù)據(jù)分析業(yè)務(wù)從話音的CDR(call detail record,呼叫詳細(xì)記錄)發(fā)展為數(shù)據(jù)業(yè)務(wù)的DPI(deep packet inspection,深度報文檢測)的 UDR(user data record,用戶數(shù)據(jù)記錄);記錄規(guī)模從千萬條增長100倍發(fā)展到數(shù)十億條;存儲規(guī)模正由GB級別向TB級別發(fā)展。
·傳統(tǒng)方案失效:面對海量數(shù)據(jù),傳統(tǒng)的小型機+磁陣方案無法勝任;Oracle可處理數(shù)千萬條,無法處理數(shù)十億條記錄;傳統(tǒng)SQL查詢響應(yīng)慢,某些業(yè)務(wù)運行時間超過數(shù)小時。
·并行分析瓶頸:分析維度需要同時支持多種業(yè)務(wù)的并行分析;業(yè)務(wù)平臺還需要同時支撐多部門、多地域的并發(fā)查詢;業(yè)務(wù)請求集中在月初,由于時間沖突,導(dǎo)致效率下降。
分布式計算是近年提出的一種新的計算方式,它研究如何把一個需要巨大計算能力才能解決的問題分成許多小的部分,然后分配給許多計算機進行處理,最后把計算結(jié)果綜合起來得到最終結(jié)果。分布式計算是云計算領(lǐng)域的重要研究方向,共享稀有資源和平衡負(fù)載是其核心思想之一。分布式計算能更好地使用計算資源,更智能地進行大規(guī)模數(shù)據(jù)處理。基于高效的虛擬計算資源,應(yīng)用程序能以一種靈活且安全的方式實現(xiàn)快速擴展和縮減,從而交付高品質(zhì)服務(wù)。分布式計算使得IT管理更加輕松,保證快捷響應(yīng)業(yè)務(wù)需求。業(yè)務(wù)或客戶服務(wù)以極為簡化的方式交付,這將大大推進創(chuàng)新和高效決策。業(yè)界一致認(rèn)為,分布式計算平臺是提高海量數(shù)據(jù)分析性能的最佳解決方案。
電信企業(yè)信息化建設(shè)不斷發(fā)展,需要處理分析的數(shù)據(jù)量不斷快速增長,利用分布式計算架構(gòu)實現(xiàn)業(yè)務(wù)加速是一個可行的技術(shù)方案,并且,該方案可以廣泛地應(yīng)用在聯(lián)機分析和數(shù)據(jù)挖掘等需要進行大規(guī)模數(shù)據(jù)處理的領(lǐng)域。其中,Hadoop是采用開源模式的分布式計算技術(shù)框架,以HDFS(Hadoop distributed file system)文件分散存儲和MapReduce并行計算為基礎(chǔ)的分布式計算平臺,底層采用Linux操作系統(tǒng),利用低成本的PC設(shè)備組成大型集群,構(gòu)建下一代具備高性能的海量數(shù)據(jù)分布式計算服務(wù)平臺。
Hadoop分布式計算已經(jīng)集成了數(shù)十個高性能的應(yīng)用組件,可以滿足各種數(shù)據(jù)分析處理的需求?;贖adoop框架的分布式計算平臺邏輯架構(gòu)如圖1所示。Hadoop分布式計算平臺主要包括以下應(yīng)用組件。
圖1 基于Hadoop框架的分布式計算平臺邏輯架構(gòu)
·Hive分布式數(shù)據(jù)倉庫:建立在Hadoop上的數(shù)據(jù)倉庫框架,提供方便的數(shù)據(jù)集成、特殊查詢以及建立在Hadoop文件上的大規(guī)模數(shù)據(jù)分析;支持MapReduce并行SQL查詢的分布式關(guān)系型數(shù)據(jù)倉庫,可以用于存儲海量結(jié)構(gòu)化數(shù)據(jù),并支持?jǐn)?shù)據(jù)分區(qū)以及建立索引等數(shù)據(jù)庫功能,對外提供JDBC/ODBC接口,可以快速替代傳統(tǒng)的Oracle數(shù)據(jù)庫。
·HBase列存儲數(shù)據(jù)庫:基于列存儲的分布式數(shù)據(jù)庫,采用國際最流行的NoSQL數(shù)據(jù)庫架構(gòu),支持列的動態(tài)增加和刪除,最大可以支持到數(shù)萬列,特別適合于用戶行為分析的應(yīng)用。
·Mahout智能算法庫:提供各種k均值、神經(jīng)網(wǎng)絡(luò)等智能算法,滿足數(shù)據(jù)挖掘的各種算法需求,采用MapReduce并行計算,運行效率極高,完全可以替代各種商業(yè)BI工具,從而節(jié)省大量成本。
·Ganglia實時監(jiān)控:可以實時監(jiān)控Hadoop平臺各個節(jié)點的資源分配、作業(yè)運行、任務(wù)調(diào)度等,直接展示云平臺運行情況。
基于分布式計算架構(gòu)的電信數(shù)據(jù)分析系統(tǒng)可以很好地實現(xiàn)業(yè)務(wù)加速能力,該平臺具有以下技術(shù)優(yōu)勢。
·并行導(dǎo)入 ETL(extract transform and load,提取轉(zhuǎn)換加載)加速:基于Hadoop的分布式計算采用HDFS分散存儲機制,可以多個節(jié)點同時導(dǎo)入多個數(shù)據(jù)文件,實現(xiàn)數(shù)據(jù)文件的并行導(dǎo)入功能,避免了磁盤I/O瓶頸,可以有效縮短導(dǎo)入時間加速ETL過程。
·MR并發(fā)查詢加速:數(shù)據(jù)表Table在Hive中以多個數(shù)據(jù)塊存儲,采用MapReduce并行機制,將查詢作業(yè)映射為多個子任務(wù),子任務(wù)處理少量數(shù)據(jù)塊,然后輸出統(tǒng)一結(jié)果,發(fā)揮了多核協(xié)同的性能優(yōu)勢。
·橫縱分散取數(shù)加速:Hadoop支持?jǐn)?shù)據(jù)分區(qū)模式的橫向分散和按照列存儲的縱向分散,滿足不同的業(yè)務(wù)需求,其中分區(qū)橫向模式符合電信管理模式,可以用于業(yè)務(wù)寬表的取數(shù)加速。
為了提高現(xiàn)有平臺的業(yè)務(wù)處理能力,一種方案是系統(tǒng)擴容,目前電信使用的數(shù)據(jù)分析系統(tǒng)大多采用商業(yè)版本的軟件平臺,例如Teradata平臺的系統(tǒng)擴容價格非常昂貴,而且需要綁定硬件的存儲容量。另一種方案就是采用外部加速方式,即通過Hadoop云平臺可以有效提高業(yè)務(wù)處理速度。本章將著重介紹采用外部加速實現(xiàn)海量取數(shù)加速的應(yīng)用案例,案例對象是中國電信股份有限公司某省公司的大批量智能取數(shù)平臺(intelligent data acquire platform,IDAP),研究目的是通過基于Hadoop框架改造實現(xiàn)業(yè)務(wù)加速。
傳統(tǒng)大批量智能取數(shù)平臺的數(shù)據(jù)集市(采用Oracle數(shù)據(jù)庫)中存儲的數(shù)據(jù)量日漸龐大,由于數(shù)據(jù)量大并且并發(fā)業(yè)務(wù)多,當(dāng)多用戶在線操作或者取數(shù)量多時會存在著明顯的業(yè)務(wù)瓶頸。該平臺目前常用的功能包括資產(chǎn)取數(shù)、訂單類取數(shù)、收入類取數(shù)以及業(yè)務(wù)量取數(shù),日常操作中,在取1~3個月數(shù)據(jù)時有性能瓶頸,具體表現(xiàn)在以下幾個方面。
·如果數(shù)據(jù)量太大或數(shù)據(jù)庫對應(yīng)并發(fā)量大,可能會導(dǎo)致取數(shù)失敗。
·大數(shù)據(jù)量的提取,就意味著需要大的存儲空間來存儲數(shù)據(jù)。因此,存儲空間隨著業(yè)務(wù)的發(fā)展而需要擴充,且存儲空間的增長不會影響性能。
·外部系統(tǒng)大數(shù)據(jù)量提取,數(shù)據(jù)庫處理性能低下。
目前的業(yè)務(wù)瓶頸主要是系統(tǒng)的性能不能滿足業(yè)務(wù)日益發(fā)展的需要,面對大數(shù)據(jù)量數(shù)據(jù)分析業(yè)務(wù),通過傳統(tǒng)的系統(tǒng)擴容來解決問題的方式已經(jīng)行不通了。而基于對分布式計算的研究與理論論證,筆者認(rèn)為可以在較低的硬件成本投入下產(chǎn)生較好的業(yè)務(wù)加速。針對現(xiàn)有系統(tǒng)的性能瓶頸,筆者著手對其進行基于Hadoop框架的分布式改造工作,圖2方框內(nèi)為改造后的技術(shù)架構(gòu),即將海量數(shù)據(jù)存儲于Hadoop平臺的HDFS分散存儲模型上,然后通過UDF方式將此數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉庫Hive中。
圖2 基于分布式計算的IDAP應(yīng)用改造方案
具體來說,就是在多臺PC服務(wù)器上部署Hadoop框架,包括了HDFS以及Hive分布式數(shù)據(jù)倉庫,然后通過接口將數(shù)據(jù)集市中的數(shù)據(jù)導(dǎo)入Hadoop集群。應(yīng)用Hadoop分布式計算框架提供的分布式文件系統(tǒng)以及Hive分布式數(shù)據(jù)倉庫服務(wù),替代原有的基于傳統(tǒng)關(guān)系型數(shù)據(jù)庫的IDAP數(shù)據(jù)集市,原有系統(tǒng)業(yè)務(wù)邏輯基本不變,仍然采用JDBC接口方式提交SQL業(yè)務(wù)查詢請求。在進行數(shù)據(jù)表查詢時,將一個SQL的查詢操作通過UDF自定義的方式調(diào)用Hadoop的MapReduce并行架構(gòu),從而將SQL查詢轉(zhuǎn)換為成百上千個子查詢?nèi)蝿?wù),因此可以有效地提高查詢速度,完成業(yè)務(wù)加速的目標(biāo)。
本次分布式集群硬件采用6臺DELL R710服務(wù)器,具體配置為 2 個 Intel E5620 CPU、8×4 GB 內(nèi)存、8×146 GB SAS硬盤以及4個吉比特網(wǎng)卡。筆者對基于分布式計算框架的IDAP大批量智能取數(shù)進行了專門的測試驗證。測試的基準(zhǔn)完全基于現(xiàn)有系統(tǒng)的數(shù)據(jù)集市的真實數(shù)據(jù),即總?cè)萘?.7 TB總計84億條記錄數(shù)。選取傳統(tǒng)平臺上17個SQL取數(shù)語句作為測試用例,測試數(shù)據(jù)如表1所示。
在實際測試驗證過程中,筆者分別記錄傳統(tǒng)和分布式IDAP上收入類取數(shù)、訂單類取數(shù)、資產(chǎn)類取數(shù)、業(yè)務(wù)量取數(shù)等各主題的取數(shù)時間,然后進行比較。通過對所有測試用例取數(shù)時間的分析,最后得出以下主要結(jié)論。
·傳統(tǒng)取數(shù)時間在3min以內(nèi)的測試用例,分布式改造之后,有的測試用例取數(shù)時間比傳統(tǒng)取數(shù)時間長,有的測試用例取數(shù)時間比傳統(tǒng)取數(shù)時間短,提升效率不明顯。
·傳統(tǒng)取數(shù)時間在3~60min的測試用例,分布式改造之后,所有的測試用例取數(shù)時間都比傳統(tǒng)取數(shù)時間縮短了,并且提升效率在5倍以上。
·傳統(tǒng)取數(shù)時間在60min以上的測試用例,分布式改造之后,所有的測試用例取數(shù)時間都比傳統(tǒng)取數(shù)時間縮短了,提升效率在10倍以上。
通過基于分布式計算框架對傳統(tǒng)IDAP進行業(yè)務(wù)加速改造,可以達(dá)到以下3個效果。
·改造成本低:Hadoop分布式計算平臺采用開源免費的模式,硬件采用低成本PC設(shè)備,只需支付平臺的軟件服務(wù)費即可,節(jié)省了大量系統(tǒng)升級成本。
表1 取數(shù)時間對比
表2 基于分布式架構(gòu)的IDAP方案與傳統(tǒng)方案對比
·系統(tǒng)改造少:傳統(tǒng)IDAP屬于生產(chǎn)系統(tǒng),其云加速平臺采用標(biāo)準(zhǔn)的數(shù)據(jù)訪問接口,對傳統(tǒng)IDAP改造工作量少,基本無需改動,實現(xiàn)了業(yè)務(wù)無縫升級加速。
·提速效果明顯:經(jīng)過實際業(yè)務(wù)數(shù)據(jù)的測試,采用Hadoop分布式平臺可以實現(xiàn)10倍以上的平均加速效果,完全滿足了業(yè)務(wù)加速的需求。
傳統(tǒng)的IDAP方案中大批量智能取數(shù)平臺部署在一臺P570上,后臺通過光纖連接SAN存儲,大約占用兩個機柜,能耗超過10 000 W。表2為傳統(tǒng)IDAP方案與基于分布式計算框架的IDAP方案的詳細(xì)數(shù)據(jù)對比。
通過表2數(shù)據(jù)對比,可以得出以下結(jié)論。
·傳統(tǒng)方案基于關(guān)系型Oracle數(shù)據(jù)庫,無論從支持的節(jié)點數(shù)還是數(shù)據(jù)庫容量都是有限的,而分布式方案可以支持PB級別海量數(shù)據(jù),節(jié)點規(guī)模最大可以達(dá)到數(shù)千個。
·傳統(tǒng)方案通過小型機+存儲陣列方式構(gòu)建平臺,初始投入的費用相當(dāng)可觀,并且日后的維保開支也會很大,而分布式方案通過PC服務(wù)器或者工控機就可以組成高性能計算集群,費用可以節(jié)省70%以上。
·傳統(tǒng)方案的擴展成本除了實施成本之外,還需要額外的數(shù)據(jù)庫軟件許可費用,而分布式方案只需要支付實施成本就可以了,顯然分布式方案在成本方面更節(jié)省。
·在硬件成本一致的前提下,采用工控機的分布式方案要比采用PC服務(wù)器的分布式方案性價比更高,即能夠?qū)崿F(xiàn)更好的加速效果。
·分布式方案在空間利用率以及能耗方面都要優(yōu)于傳統(tǒng)方案,也就是說分布式方案為機房的綠色節(jié)能提供了可能性。
隨著電信業(yè)務(wù)的不斷發(fā)展,海量數(shù)據(jù)存儲與分析的需求不斷涌現(xiàn),利用Hadoop分布式計算框架可以實現(xiàn)海量數(shù)據(jù)的超值存儲和分析統(tǒng)計,提高數(shù)據(jù)分析的效率,讓企業(yè)更加能適應(yīng)快速變化的市場,為快速推出新的產(chǎn)品提供數(shù)據(jù)依據(jù)。
1 聞劍峰,石屹嶸.基于云計算的全球眼業(yè)務(wù)平臺研究.電信科學(xué),2010,26(6)
2 龔德志,聞劍峰.虛擬化技術(shù)在電信服務(wù)器資源整合中的應(yīng)用研究.電信科學(xué),2009,25(9):21~23
3 石屹嶸,段勇.云計算在電信IT領(lǐng)域的應(yīng)用探討.電信科學(xué),2009,25(9):24~28