徐時芳 羅曉賓 陳陽華
摘 要: 針對分布式大數據對數據存儲、清洗、轉化、聚合、挖掘和分析工作所造成的挑戰,設計并實現了一種基于Spark的分布式大數據分析建模系統。該系統通過數據采集、數據存儲、數據分析、數據管理和數據應用5個模塊,實現結構化、半結構化及非結構化數據的適配采集與離線、在線分析處理;并使用管理和控制平臺,實現系統的協調運行。軟硬件實現及建模測試結果表明,所提出的系統能實現具體場景故障診斷數據的有效、精確聚類,并可滿足大數據處理的速度和精度需求。
關鍵詞: 分布式大數據; Spark; 數據分析; 數據建模; 非結構化數據; 故障診斷
中圖分類號: TN919?34; TM76 文獻標識碼: A 文章編號: 1004?373X(2018)20?0172?03
Abstract: In allusion to the challenges posed by distributed big data to data storage, cleaning, transformation, aggregation, mining and analysis, a distributed big data analysis and modeling system based on Spark was designed and implemented. In the system, adaptive acquisition, offline analysis processing and online analysis processing of structured, semi?structured and unstructured data are realized by using five modules of data acquisition module, data storage module, data analysis module, data managemetn module and data application module. The management and control platform is used to achieve coordinated operation of the system. The results of software and hardware implementation and modeling test show that the proposed system can achieve effective and accurate data clustering for fault diagnosis of specific scenarios and meet the speed and accuracy requirements of big data processing.
Keywords: distributed big data; Spark; data analysis; data modeling; unstructured data; fault diagnosis
隨著互聯網的快速發展,產生了大量復雜多變的結構化、半結構化和非結構化數據[1],對數據存儲、清洗、轉化、聚合、挖掘及分析工作造成了極大的挑戰[2?5]。雖然現有的分布式存儲技術能將海量數據存儲在服務器集群中[6],但大數據存在結構復雜、格式不統一、不規范的問題,需要去除其中的“糟粕”,以提取出有價值的數據[7];同時,隨著數據量呈指數的方式增長,需要更高效的算法和工具來合理分配計算資源[8]。現有的數據處理方式難以實現異構數據的處理。因此,本文借助Spark數據分析技術[9]構建大數據分析建模系統,以提高分布式大數據處理的效率與精度。Spark是加州伯克利分校AMPLab實驗室于2009年提出的MapReduce分布式計算的替代方案,具有速度快、通用性和易用性強等特點[10]。相比于MapReduce,Spark通過串聯或并聯執行多個Stage而無需將中間結果輸出到磁盤上[11];Spark使用彈性分布式數據集進行數據存儲,可以精確讀取每一條記錄,并能讓用戶自定義分區策略;Spark使用事件驅動方式啟動任務,能明顯減小線程啟動和切換開銷[12]。
基于上述分析,本文針對分布式大數據分析和挖掘上的痛點,依托于Spark數據分析技術設計與實現了一種分布式大數據分析建模系統。該系統通過集成數據采集、數據存儲、數據分析、數據管理和數據應用等功能,對數據進行聚類與分類,并提供預測模型,為信息的挖掘和預測提供支持。
本文基于Spark數據分析技術,構建了如圖1所示的分布式大數據分析建模系統。在數據采集與存儲方面實現了結構化、半結構化和非結構化數據的適配采集。并使用HBase和HDFS存儲非關系型數據,使用RDBMS存儲關系型數據;在數據處理方面,針對數據處理的不同需求,使用Spark,Hive,Pig和Mahout實現數據的離線處理,再使用Spark和Storm實現數據的高速實時處理;在數據應用方面,實現了數據報告、搜索、可視化以及各種功能性應用、專題應用和預測分析。同時,為了保證系統的協調運行,設計了系統管理和控制平臺。下面分別介紹各模塊的具體設計與實現。
1) 數據采集模塊。該模塊使用遷移接口、推送接口組成的采集適配器和Sqoop,實現關系型數據、文檔型數據、空間數據及實時業務數據的采集。
2) 數據存儲模塊。該模塊架構如圖2所示。使用關系型數據庫和分布式文件系統混搭的方式實現數據的存儲,并使用統一的數據接口為大數據處理和應用提供數據支撐。其中,使用HDFS構建分布式文件系統來存儲離線處理所需的結構化和非結構化數據;使用Oracle數據庫存放關系型數據庫表數據和數據挖掘元數據,便于進行系統查詢、匯總與分析等應用。
3) 數據分析模塊。該模塊架構如圖3所示。其包括實時計算引擎和離線處理引擎兩種模式,以支撐大數據計算及任務調度等應用場景。其中,使用Spark計算框架對歷史數據進行離線建模和預測分析;使用Spark計算引擎與storm計算組件,實現數據實時分析處理。該模塊使用ZooLeeper工具協調配置管理和名字服務,實現集群與分布式的同步管理。
4) 數據管理模塊。該模塊包括控制臺和系統管理兩部分。控制臺部分主要功能包括:監控管理、應用管理、集群管理、數據源管理和任務計劃;系統管理部分主要功能包括:賬戶管理、安全管理、配置管理和SNMP管理等。
5) 數據應用模塊。該模塊使用MVC框架和JavaAPI實現HDFS數據的可視化,并使用Spark編程模型實現數據清洗及合并功能;同時,使用Spark SQL和Hive metastore實現可視化數據的查詢與建模。
數據分析建模功能是通過連接各種具有具體功能函數的操作節點,并形成流程來實現。其輸入為系統采集的各種數據,輸出為建模結果。這里分別從數據導入、數據基本操作、數據建模和數據導出4部分介紹基于Spark的分布式大數據分析建模功能的具體實現。
1) 數據導入。數據分析建模系統不僅可以導入數據文件,還能導入數據庫。通過設置導入數據的路徑和數據屬性參數,將原始數據保存為系統能識別的類型。
2) 數據基本操作。數據分析建模系統所涉及的基本操作包括類型操作、新屬性生成、節點連接和數據分區、排序、統計等。
3) 數據建模。本文設計的數據分析建模系統實現了線性回歸、K?means聚類和決策樹等建模方法。在數據建模過程中,首先將樣本數據集分為訓練和檢測兩部分。訓練樣本用于構建模型,測試樣本則用于模型校驗。
4) 數據導出。數據導出過程包括寫HDFS和寫模型兩個步驟。寫HDFS將數據建模過程得到的驗證結果,存儲到HDFS文件系統中;寫模型將模型以二進制或XML的形式寫入文件。本文將K?means模型保存為XML文件的示例如圖4所示。
本文使用1臺服務器作為控制節點、3臺服務器作為計算節點以及1臺千兆網絡交換機構建仿真系統,并在硬件系統上部署Zookeeper,Hive和Spark等軟件環境。集群啟動成功后得到的結果如圖5所示。
為了驗證本文提出的數據分析建模功能的有效性,本部分將上述方法應用到大學生創新創業能力培養策略問題中進行仿真測試,研究適合大學生能力培養的最優路徑。在文中構建的測試數據集上,該系統可得到83.3%的預測精度,決策樹輸出如圖6所示。
分布式大數據存在結構復雜、格式不統一及不規范的問題。為了提高其處理的效率和精度,本文借助Spark數據分析技術設計并實現了一種分布式大數據分析建模系統。該系統包括數據采集、數據存儲、數據分析、數據管理和數據應用5個模塊,實現了異構數據的采集、清洗及分析建模功能。軟硬件實現與仿真測試結果表明,該系統能實現實際數據的有效、精確建模,并能滿足大數據處理的速度、精度需求。
參考文獻
[1] ZAHARIA M, XIN R S, WENDELL P, et al. Apache Spark: a unified engine for big data processing [J]. Communications of the ACM, 2016, 59(11): 56?65.
[2] MAILLO J, RAM?REZ S, TRIGUERO I, et al. kNN?IS: an iterative Spark?based design of the k?nearest neighbors classifier for big data [J]. Knowledge?based systems, 2017, 117: 3?15.
[3] 李洋,何寶靈,劉海濤,等.面向全球能源互聯網的分布式電源云服務與大數據分析平臺研究[J].電力信息與通信技術,2016,14(3):30?36.
LI Yang, HE Baoling, LIU Haitao, et al. Research on distributed generation cloud service and big data analysis platform for global energy interconnection [J]. Electric power information and communication technology, 2016, 14(3): 30?36.
[4] 諶志華.基于大數據的網絡輿情分析系統[J].現代電子技術,2017,40(24):15?17.
SHEN Zhihua. Network public opinion analysis system based on big data [J]. Modern electronics technique, 2017, 40(24): 15?17.
[5] 喬非,葛彥昊,孔維暢.基于MapReduce的分布式改進隨機森林學生就業數據分類模型研究[J].系統工程理論與實踐,2017,37(5):1383?1392.
QIAO Fei, GE Yanhao, KONG Weichang. MapReduce based distributed improved random forest model for graduates career classification [J]. Systems engineering?theory & practice, 2017, 37(5): 1383?1392.
[6] 焉曉貞,謝紅,王桐.一種基于相關分析的多元回歸數據估計方法[J].沈陽工業大學學報,2013,35(2):212?217.
YAN Xiaozhen, XIE Hong, WANG Tong. Data evaluation method using multiple regression based on correlation analysis [J]. Journal of Shenyang University of Technology, 2013, 35(2): 212?217.
[7] 張宸,韓夏.大數據環境下基于SVM?WNB的網絡輿情分類研究[J].統計與決策,2017(14):45?48.
ZHANG Chen, HAN Xia. Classification research on NPO based on SVM?WNB under big data environment [J]. Statistics & decision, 2017(14): 45?48.
[8] 程敏.基于PostgreSQL和Spark的可擴展大數據分析平臺[D].深圳:中國科學院深圳先進技術研究院,2016.
CHENG Min. Scalable big data analysis platform based on PostgreSQL and Spark [D]. Shenzhen: Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, 2016.
[9] 張繁,袁兆康,肖凡平,等.基于Spark的大數據熱圖可視化方法[J].計算機輔助設計與圖形學學報,2016,28(11):1881?1886.
ZHANG Fan, YUAN Zhaokang, XIAO Fanping, et al. Research on Heatmap for big data based on Spark [J]. Journal of computer?aided design & computer graphics, 2016, 28(11): 1881?1886.
[10] 皮艾迪,喻劍,周笑波.基于學習的容器環境Spark性能監控與分析[J].計算機應用,2017,37(12):3586?3591.
PI Aidi, YU Jian, ZHOU Xiaobo. Learning?based performance monitoring and analysis for Spark in container environments [J]. Journal of computer applications, 2017, 37(12): 3586?3591.
[11] 卜堯,吳斌,陳玉峰,等.BDAP:一個基于Spark的數據挖掘工具平臺[J].中國科學技術大學學報,2017,47(4):358?368.
BU Yao, WU Bin, CHEN Yufeng, et al. BDAP: a data mining platform based on Spark [J]. Journal of University of Science and Technology of China, 2017, 47(4): 358?368.
[12] 陳虹君,吳雪琴.基于Hadoop平臺的Spark快數據推薦算法分析與應用[J].現代電子技術,2016,39(10):18?20.
CHEN Hongjun, WU Xueqin. Analysis and application of Spark fast data recommendation algorithm based on Hadoop platform [J]. Modern electronics technique, 2016, 39(10): 18?20.