蔡林
【摘要】 ? ?目的:介紹Jupyter Notebook在網(wǎng)絡(luò)優(yōu)化領(lǐng)域的應(yīng)用情況。方法:集成Hadoop、Spark、Jupyter Notebook 等開源工具,搭建網(wǎng)絡(luò)優(yōu)化分析平臺,基于真實(shí)案例驗(yàn)證其在網(wǎng)絡(luò)優(yōu)化領(lǐng)域應(yīng)用的可行性。結(jié)果:通過搭建大數(shù)據(jù)計(jì)算環(huán)境,成功實(shí)現(xiàn)多數(shù)據(jù)接入、分布式運(yùn)算、分布式存儲、交互式應(yīng)用及結(jié)果展示等功能,并基于該平臺完成網(wǎng)絡(luò)整體問題分析、問題原因定位分析、問題處理方案分析、問題處理效果分析等大數(shù)據(jù)分析任務(wù)。結(jié)論:結(jié)合網(wǎng)絡(luò)優(yōu)化的大數(shù)據(jù)分析需求,搭建便于使用的大數(shù)據(jù)分析環(huán)境,提升基于大數(shù)據(jù)的網(wǎng)絡(luò)優(yōu)化分析能力。
【關(guān)鍵詞】 ? ?大數(shù)據(jù) ? ?Jupyter Notebook ? Hadoop ? ?Spark ? ?分布式計(jì)算 ? ?網(wǎng)絡(luò)優(yōu)化
引言:
隨著無線通信網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)絡(luò)優(yōu)化信息化、智能化建設(shè)進(jìn)入了突飛猛進(jìn)的發(fā)展階段,積累了大量的MR(測量報(bào)告)、PM(性能數(shù)據(jù))、NRM(網(wǎng)絡(luò)資源管理)、工參等基礎(chǔ)數(shù)據(jù)。這些數(shù)據(jù)資源的價(jià)值還未能充分的挖掘,如何從各維度大量數(shù)據(jù)中發(fā)現(xiàn)可用的信息,加速網(wǎng)絡(luò)優(yōu)化信息化、智能化進(jìn)程是迫在眉睫的任務(wù)。通過對網(wǎng)優(yōu)大數(shù)據(jù)特性及網(wǎng)優(yōu)工作協(xié)作方式與Jupyter Notebook進(jìn)行結(jié)合性研究,實(shí)現(xiàn)有效的且適用于網(wǎng)優(yōu)的大數(shù)據(jù)分析,以滿足網(wǎng)絡(luò)優(yōu)化分析需求。
一、 jupyter與網(wǎng)絡(luò)優(yōu)化分析處理的結(jié)合
1.1 Jupyter Notebook[1] 技術(shù)與網(wǎng)絡(luò)優(yōu)化分析應(yīng)用結(jié)合
Jupyter是一個(gè)可交互的記事本,支持了Python[2]、Julia、JavaScript、R等等編程語言達(dá)40 多種。它是一個(gè)開源的Web 應(yīng)用程序,在其環(huán)境中可以運(yùn)行代碼和記錄代碼,可以對數(shù)據(jù)進(jìn)行清洗,可以通過可視化視圖查看數(shù)據(jù)結(jié)果,可以進(jìn)行大數(shù)據(jù)相關(guān)的數(shù)模轉(zhuǎn)換、模型構(gòu)建、機(jī)器學(xué)習(xí)訓(xùn)練等。
如圖1所視,Jupyter Notebook的系統(tǒng)架構(gòu)包括人機(jī)交互、瀏覽器、服務(wù)器、核心、文件等,其中服務(wù)器為核心構(gòu)件。網(wǎng)優(yōu)分析人員通過瀏覽器連接到服務(wù)器,在Web中編寫代碼并將代碼發(fā)送到內(nèi)核,由內(nèi)核執(zhí)行,于將結(jié)果反饋到Web頁面。個(gè)人編寫的代碼保存在服務(wù)器中,可共享給其他人員使用。
1.2 JupyterHub[3]技術(shù)與網(wǎng)優(yōu)工作流程結(jié)合
JupyterHub支持多個(gè)用戶(包括管理人員、網(wǎng)優(yōu)人員和維護(hù)人員等)同時(shí)構(gòu)建自己的工作空間和計(jì)算環(huán)境,共享或使用其他人的資源,以達(dá)到聯(lián)機(jī)協(xié)作的目的。
1.3 HDFS[4]與jupyter結(jié)合作大數(shù)據(jù)存儲
Hadoop分布式文件系統(tǒng)(HDFS)是指被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)(Distributed File System),用于存儲網(wǎng)絡(luò)優(yōu)化分析所需的各類型各維度數(shù)據(jù)。
1.4 Spark[5]與jupyther結(jié)合作大數(shù)據(jù)計(jì)算
Spark 提供了80多個(gè)高級運(yùn)算符。一方面,Spark提供了支持多種語言的API,使得用戶開發(fā)Spark程序十分方便。另一方面,Spark是基于Scala語言開發(fā)的,使得Spark應(yīng)用程序代碼非常簡潔。同時(shí)由于spark基于內(nèi)存,在網(wǎng)優(yōu)大數(shù)據(jù)處理領(lǐng)域,性能比hadoop快。
二、基于jupyter的網(wǎng)絡(luò)優(yōu)化分析平臺架構(gòu)
網(wǎng)絡(luò)優(yōu)化分析平臺的建設(shè)面向基于大數(shù)據(jù)的網(wǎng)絡(luò)分析優(yōu)化需求,以網(wǎng)優(yōu)問題分析定位為主要目的,結(jié)合MR、PM、NRM、CM等數(shù)據(jù)特點(diǎn),主要以滿足網(wǎng)絡(luò)優(yōu)化問題定位為主。網(wǎng)絡(luò)優(yōu)化分析平臺的總體架構(gòu)圖見圖2,包括網(wǎng)優(yōu)數(shù)據(jù)的采集解析、基于不同數(shù)據(jù)類型的分布式存儲、各類型數(shù)據(jù)不同維度的分布式運(yùn)算、各類型數(shù)據(jù)的組合應(yīng)用層以及用戶界面應(yīng)用。
2.1 用戶界面
界面提供給網(wǎng)優(yōu)工作人員進(jìn)行網(wǎng)優(yōu)工作信息交互,實(shí)現(xiàn)網(wǎng)絡(luò)信息的內(nèi)部組合形式與網(wǎng)優(yōu)人員可以接受的按照既定業(yè)務(wù)邏輯形式之間的轉(zhuǎn)換。
2.2 應(yīng)用層
應(yīng)用層為網(wǎng)優(yōu)人員提供了自行代碼編寫、程序調(diào)試及結(jié)果展示的功能,利用JupyterHub實(shí)現(xiàn)多個(gè)網(wǎng)優(yōu)人員的Notebook管理,同時(shí)也提供了HIVE、PIG等傳統(tǒng)的大數(shù)據(jù)統(tǒng)計(jì)分析工具供網(wǎng)優(yōu)人員選擇。
2.3 分布式運(yùn)算
基于Spark框架,利用Spark Streaming、Spark SQL、GraphX、MLlib等核心組件,實(shí)現(xiàn)網(wǎng)絡(luò)優(yōu)化各類型各維度數(shù)據(jù)統(tǒng)計(jì)。
2.4 分布式存儲
網(wǎng)絡(luò)優(yōu)化分析大數(shù)據(jù)平臺采用HDFS作為分布式存儲的文件系統(tǒng),HDFS有著高容錯(cuò)性(fault-tolerant)的特點(diǎn),而且它提供高吞吐量(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。從而支持網(wǎng)優(yōu)人員在HBase[6]或HDFS上對數(shù)據(jù)進(jìn)行查詢、編輯等操作。
三、應(yīng)用案例
3.1 4G MR競對深度分析
本案例對超過300億條MR測量記錄進(jìn)行按天各運(yùn)營商覆蓋優(yōu)劣分析。首先將數(shù)據(jù)(.xml格式)采集解析清洗并轉(zhuǎn)換為parquet [7] 格式存儲到HDFS中,然后根據(jù)查重條件對數(shù)據(jù)進(jìn)行聚合統(tǒng)計(jì),得到按天的各行政區(qū)劃各場景的運(yùn)營商覆蓋率、優(yōu)于競爭對手的小區(qū)數(shù)、劣于競爭對手的小區(qū)數(shù),得到覆蓋率優(yōu)于或劣于競爭對手的行政區(qū)劃數(shù)、場景數(shù),計(jì)算任務(wù)利用Spark分布式計(jì)算框架來完成,通過jupyter連接數(shù)據(jù)庫,可以對數(shù)據(jù)進(jìn)行開發(fā),數(shù)據(jù)建模,最后利用Python包matpoltlib圖形化展示各運(yùn)營商各行政區(qū)劃、各場景的覆蓋率、優(yōu)于或劣于競爭對手小區(qū)數(shù)的對比分析結(jié)果,支持快速定位覆蓋率差的行政區(qū)或場景,支持快速定位優(yōu)于或劣于競爭對手的行政區(qū)或場景,作為支撐后續(xù)基于覆蓋優(yōu)化的天饋調(diào)整、參數(shù)調(diào)整及網(wǎng)絡(luò)規(guī)劃工作的依據(jù)。
3.2 4G分頻段對比分析
本案例對超過30億條PM數(shù)據(jù)、超過300億條的MR測量記錄、超過1千萬條NRM數(shù)據(jù)進(jìn)行按天分析。首先對數(shù)據(jù)進(jìn)行數(shù)據(jù)采集解析清洗存儲到HDFS中,然后根據(jù)NRM匹配出有效的工參數(shù)據(jù),再按照工參數(shù)據(jù)中的頻段屬性進(jìn)行分頻段聚合統(tǒng)計(jì),得到按天的各頻段按頻段、按行政區(qū)劃、按場景、按基站的干擾類、接入類、保持類、容量類、移動類、負(fù)荷類、語音類、覆蓋類指標(biāo)數(shù)據(jù),計(jì)算任務(wù)利用Spark分布式計(jì)算框架來完成,通過jupyter連接數(shù)據(jù)庫,可以對數(shù)據(jù)進(jìn)行開發(fā),數(shù)據(jù)建模,最后利用Python包matpoltlib圖形化展示4G分頻段的各類指標(biāo),支持按指標(biāo)類的不同行政區(qū)域?qū)Ρ?、不同場景對比,支持按行政區(qū)劃、按場景的不同類指標(biāo)對比,支持按行政區(qū)域、按場景的某一類內(nèi)多個(gè)指標(biāo)對比,作為支撐后續(xù)指標(biāo)差原因分析、指標(biāo)優(yōu)化分析、參數(shù)調(diào)整、負(fù)荷均衡、硬件擴(kuò)減容、LICENSE調(diào)整、頻段調(diào)整、PCI調(diào)整、鄰區(qū)調(diào)整的依據(jù)。
四、結(jié)束語
基于Jupyter Notebook的網(wǎng)絡(luò)優(yōu)化大數(shù)據(jù)分析應(yīng)用,構(gòu)建易于使用的網(wǎng)絡(luò)優(yōu)化分析大數(shù)據(jù)平臺,能夠快速高效為網(wǎng)優(yōu)人員提供大數(shù)據(jù)分析計(jì)算環(huán)境,解決日常網(wǎng)絡(luò)優(yōu)化的大量數(shù)據(jù)分析處理問題。同時(shí)由于網(wǎng)絡(luò)優(yōu)化分析平臺的信息安全級別要求較高,使得基于開源產(chǎn)品建設(shè)的平臺維護(hù)難度較大,需要進(jìn)行有效的完全管理后才能作進(jìn)一步的推廣。
參 ?考 ?文 ?獻(xiàn)
[1] Jupyter.The Jupyter notebook 5.4.0 documentation[EB/OL].https://jupyter-notebook.readthedocs.io/en/5.4.0/.
[2] Python. 3.9.1 documentation[EB/OL].https://docs.python.org/3/.
[3] Jupyter.JupyterHub-JupyterHub documentation [EB/OL]. https://jupyterhub.readthedocs.io/en/stable/.
[4] Hadoop A.Hadoop-Apache hadoop 3.2.2[EB/OL]. http://hadoop.apache.org/docs/r3.2.2/.
[5] S p a r k . O v e r v i e w -Documentation[EB/OL]. http://spark.apache.org/docs/latest/.
[6] Apache.Apache HBase-Apache HBase? Home [EB/OL]. https://hbase.apache.org/.
[7] Parquet.Apache parquet[EB/OL].http://parquet.apache.org/documentation/latest/.