楊李娜
(新華通訊社,北京 100803)
通信行業大數據平臺項目應用與實踐研究
楊李娜
(新華通訊社,北京 100803)
本文首先對大數據平臺以及Hadoop框架的概念和特點進行了介紹,然后依次對Hadoop架構核心、技術優點進行了闡述,最后對通信系統話單處理中Hadoop架構的應用進行了剖析。
大數據;Hadoop框架;通信系統;話單
Hadoop是一個能夠對大量數據進行分布式處理的軟件框架,它是以一種可靠、高效、可伸縮的方式進行處理的。Hadoop是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節點重新分布處理;Hadoop是高效的,因為它以并行的方式工作,通過并行處理加快處理速度;Hadoop還是可伸縮的,能夠處理PB級數據。此外,Hadoop依賴于社區服務,它的成本比較低,任何人都可以使用。Hadoop是一個能夠讓用戶輕松架構和使用的分布式計算平臺,用戶可以輕松地在它上面開發和運行處理海量數據的應用程序。
Hadoop是一個分布式系統基礎架構,由Apache基金會開發。用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的威力高速運算和存儲。簡單地說,Hadoop是一個可以更容易開發和運行處理大規模數據的軟件平臺。

圖1 Hadoop主要項目
如圖1所示,Hadoop主要項目有:
⊙ Common:一組分布式文件系統和通用I/O的組件與接口(序列化、Java RPC和持久化數據結構)。
⊙ MapReduce:分布式數據處理模型和執行環境,運行于大型商用機集群。
⊙ HDFS:分布式文件系統,運行于大型商用機集群。
⊙ Zookeeper:一個分布式、可用性高的協調服務,提供分布式鎖之類的基本服務用于構建分布式應用。
⊙ HBase:一個分布式、按列存儲數據庫,使用HDFS作為底層存儲,同時支持MapReduce的批量式計算和點查詢(隨機讀取)。
⊙ Pig:一種數據流語言和運行環境,用以檢索非常大的數據集,運行在MapReduce和HDFS的集群上。
⊙ Hive:一個分布式、按列存儲的數據倉庫,管理HDFS中存儲的數據,并提供基于SQL的查詢語言(由運行時引起翻譯成MapReduce作業)用以查詢數據。
⊙ Mahout:一個在Hadoop上運行的可擴展的機器學習和數據挖掘類庫(例如分類和聚類算法)。
⊙ Avro:一種支持高效、跨語言的RPC以及永久存儲數據的序列化系統。
⊙ Sqoop:在數據庫和HDFS之間高效傳輸數據的工具。
Hadoop技術框架主要優點有:
⊙ 高可靠性。Hadoop按位存儲和處理數據的能力值得人們信賴。
⊙ 高擴展性。Hadoop是在可用的計算機集簇間分配數據并完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
⊙ 高效性。Hadoop能夠在節點之間動態地移動數據,并保證各個節點的動態平衡,因此處理速度非常快。
⊙ 高容錯性。Hadoop能夠自動保存數據的多個副本,并且能夠自動將失敗的任務重新分配。
⊙ 低成本。與一體機、商用數據倉庫以及QlikView,Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。Hadoop帶有用Java語言編寫的框架,因此運行在Linux生產平臺上是非常理想的,當然,Hadoop上的應用程序也可以使用其他語言編寫。Hadoop在大數據處理中廣泛應用得益于其自身在數據提取、變形和加載(ETL)方面的天然優勢,其分布式架構將大數據處理引擎盡可能的靠近存儲。
隨著移動互聯網的飛速發展,用戶數量不斷增加,電信及移動互聯網悄悄進入了大數據時代。數據的迅速膨脹及多樣化充斥著移動及電信的各種業務,對消息的實時處理在各種數據處理平臺中顯得更加重要。Storm的快速計算能力、可靠的消息傳輸機制在實時數據處理方面有著天生的優越性,適合處理要求高響應的集群的業務數據。因此,將storm應用于電信及移動互聯網的有高響應要求的業務中,將會提高整個系統的運行效率,增強系統的穩健性。
3.1 話單處理簡介
融合計費系統應遵循的技術原則:規范性,開放性,擴展性,繼承性,易用性,準確性。話單作為融合計費系統的一部分,易用性和準確性在話單處理中尤為重要。易用性體現在高響應,即對數據進行實時快速處理;準確性體現在賬務的清晰明了。這都要求計費系統有較高的響應,Storm的實時計算能力和可靠的傳輸機制恰恰滿足了這個需要。

圖2 計費系統簡單架構
如圖2所示,計費系統中增加Stream compute Storm模塊,對系統的數據進行實時處理。例如:根據需要定制獲取用戶話單的時間間隔,每隔5分鐘對用戶話單進行一次獲取(包括了用戶的語音話單和流量話單),實時進行批價,對流量進行套餐監控及費用計算,這些復雜的事件全部在Stream compute Storm模塊完成,此模塊采用并行處理方法,實現對數據的快速處理;采用可靠的消息傳輸機制,保證賬務的準確性。
3.2 話單獲取
如圖3所示,Storm的每個Spout組件都會有多個task,task的數量由用戶決定,Spout組件從外部獲取話單信息,并行批處理話單的記錄,將其按照用戶定制的分組策略將各個記錄或者域發送到指定的Bolt。
獲取話單記錄時,Spout可以有多個,每個Spout得Worker也可以有多個,在每個Worker中又可以有多個線程處理話單記錄,進程和線程的個數可以根據需要在topology中進行預設和調整,這種靈活的分配策略可以保證獲取話單的速度不會因為數據量的增加而降低性能。

圖3 話單獲取流程圖
3.3 解析話單
Spout獲取一條語音話單,并將這條話單記錄經過簡單處理按照分組策略轉發到指定的Bolt A。Spout會中東將記錄轉發出去,Bolt被動地接收。此處的分組策略采用按字段分組的方式,即把話單中按字段進行分割,每個字段都有指定的Bolt的task,這種指定在topology中進行配置。例如,用戶ID由task1進行標記處理,用戶當前通話時長由task5進行標記與轉換處理,處理的目的便于在用戶的所有信息處理完畢后進行信息合并。
在語音話單記錄解析的過程中,進行了實時的計算,對每個話單記錄域即一條記錄的字段進行標記處理,這種標記處理是并行處理的,因此十分高效。對于流量的計算可以采用固定時間間隔進行合并分析,實現流量監控,降低風險。
3.4 合并話單
對于一條話單記錄,多個Bolt對其進行處理完畢后,要按照指定策略進行合并,生成完整的話單文件,便于入庫或者查詢等。一條話單的每個字段按照用戶需要處理完畢后,分散在多個worker的多個task中,要形成一條完整的話單記錄需要對處理完畢的用戶信息進行合并處理,從大量的數據中挑出單個用戶的所有信息,這種用戶信息挑選可通過Storm的可靠消息傳輸機制實現。對于限定時間內沒有處理完的字段,可通知Bolt進行重新處理。
在處理復雜事件時要做到三點:減少應用存儲數據(在分析數據之前)造成的延遲;實時地分析多個數據流,能夠關聯不同數據流中的事件,從而發現新的相關情形;能夠迅速響應新發現的危險或機會,并且將先前發現的規律應用到新的數據流分析模型中。能夠利用已有的應用開發能力快速開放新的高性能、高擴展度的應用,確保應用和系統的連貫性。
大數據Hadoop平臺的成功應用上不勝枚舉,Facebook使用1,000個節點的集群運行Hadoop,存儲日志數據,支持其上的數據分析和機器學習;淘寶的Hadoop系統用于存儲并處理電子商務交易的相關數據。國內的高校和科研院所基于Hadoop在數據存儲、資源管理、作業調度、性能優化、系統高可用性和安全性方面進行研究,相關研究成果多以開源形式貢獻給Hadoop社區。同時,一些提供Hadoop解決方案的商業型公司利用自身技術對Hadoop進行優化、改進、二次開發等,再以自有產品形式對外提供商業服務,相信不久的將來,Hadoop技術將成為進入大數據領域的必備技術。
[1] 涂子沛.數據之巔.北京:中信出版社,2014
The Application and Project of Big Data Platform in the Industry of Communication
Yang Lina
(Xinhua News Agency, Beijing, 100803)
Firstly, the concept and characters of big data platform and Hadoop framework,And then the advantage and core of Hadoop framework, finally, the Development and application of Hadoop platform on tickethandling in communication industry are analyzed.
Big data; Hadoop Framework; Communication System; ticket
10.3969/J.ISSN.1672-7274.2015.09.010
TN91
B
1672-7274(2015)09-0043-04