趙向兵 張景安 山西大同大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)工程學(xué)院
隨著信息技術(shù)的迅猛發(fā)展,大數(shù)據(jù)、云計(jì)算、人工智能、物聯(lián)網(wǎng)、智慧制造、虛擬現(xiàn)實(shí)等不斷滲透并重塑傳統(tǒng)產(chǎn)業(yè)[1-2],大數(shù)據(jù)成為新的產(chǎn)業(yè)革命的核心,產(chǎn)業(yè)的迅速發(fā)展使高校大數(shù)據(jù)專業(yè)發(fā)展面臨著新的要求與考驗(yàn)。目前,高校大數(shù)據(jù)專業(yè)人才培養(yǎng)和教學(xué)課程體系配置存在一些突出問題,如人才培養(yǎng)和行業(yè)需求脫節(jié),課程設(shè)置與行業(yè)企業(yè)實(shí)際應(yīng)用契合度不高;課程體系重理論輕實(shí)踐,實(shí)踐課程資源不足,實(shí)踐案例不成體系,尤其是缺乏綜合性工程實(shí)踐案例,造成學(xué)生很難把理論知識轉(zhuǎn)化為實(shí)踐應(yīng)用技能,更談不上開發(fā)實(shí)際的工程項(xiàng)目。
針對以上存在的問題,筆者認(rèn)為,大數(shù)據(jù)專業(yè)課程體系建設(shè)應(yīng)注意以下幾個方面:首先,落實(shí)“新工科”[3]工程教育理念和“產(chǎn)教融合,協(xié)同創(chuàng)新”[4]新模式,課程體系制訂應(yīng)面向行業(yè)需求,充分了解各領(lǐng)域行業(yè)知識業(yè)務(wù)流及項(xiàng)目需求點(diǎn)。例如,對于應(yīng)用型本科大數(shù)據(jù)課程體系,主要是培養(yǎng)大數(shù)據(jù)平臺的開發(fā)和設(shè)計(jì)人才,培養(yǎng)大數(shù)據(jù)開發(fā)項(xiàng)目經(jīng)理和產(chǎn)品經(jīng)理,以及大數(shù)據(jù)開發(fā)工程師和架構(gòu)師;對于高職應(yīng)用型大數(shù)據(jù)課程體系,主要是培養(yǎng)大數(shù)據(jù)運(yùn)維和應(yīng)用工程師。其次,在大數(shù)據(jù)專業(yè)知識體系[5]的基礎(chǔ)上,優(yōu)化課程體系內(nèi)容和結(jié)構(gòu),加強(qiáng)實(shí)踐教學(xué)資源建設(shè),通過科學(xué)有效的案例教學(xué)將理論知識進(jìn)一步深化,從而提高學(xué)生的實(shí)踐能力和解決復(fù)雜問題的能力。最后,加強(qiáng)教師實(shí)踐教學(xué)設(shè)計(jì)能力的培養(yǎng),改革實(shí)驗(yàn)教學(xué)的形式和內(nèi)容,鼓勵開展綜合性、創(chuàng)新性實(shí)驗(yàn)教學(xué)設(shè)計(jì)。
Hadoop[6]與Spark[7]是大數(shù)據(jù)技術(shù)的基礎(chǔ),Hadoop應(yīng)用開發(fā)課程是大數(shù)據(jù)課程體系的核心課程,在學(xué)習(xí)理論知識和技術(shù)的基礎(chǔ)上,實(shí)踐教學(xué)是提高學(xué)生動手能力的關(guān)鍵環(huán)節(jié)。可是,目前實(shí)踐教學(xué)的實(shí)驗(yàn)案例以基礎(chǔ)技術(shù)應(yīng)用案例為主,缺乏綜合性的實(shí)踐案例,造成學(xué)生缺乏綜合應(yīng)用技術(shù)能力和工程實(shí)踐能力。筆者認(rèn)為,對于廣大應(yīng)用型本科院校來說,可以依托“產(chǎn)教融合”發(fā)展模式,在教學(xué)實(shí)踐過程中,以行業(yè)項(xiàng)目案例為導(dǎo)向設(shè)計(jì)實(shí)驗(yàn)案例,分析職業(yè)崗位模型,結(jié)合典型的工作場景,提取出專業(yè)技能和項(xiàng)目經(jīng)驗(yàn),最后形成完整的行業(yè)項(xiàng)目案例,完善大數(shù)據(jù)課程體系,提高學(xué)生綜合應(yīng)用大數(shù)據(jù)技術(shù)的能力和解決復(fù)雜問題的能力,使學(xué)生所學(xué)和企業(yè)需求無縫對接,從而取得較好的學(xué)習(xí)效果,轉(zhuǎn)化過程如圖1所示。

行業(yè)案例對應(yīng)表
針對各典型行業(yè)的具體特性,轉(zhuǎn)化成具有行業(yè)特征大數(shù)據(jù)技術(shù)應(yīng)用的行業(yè)案例,豐富綜合應(yīng)用項(xiàng)目的實(shí)驗(yàn)教學(xué)內(nèi)容,對應(yīng)關(guān)系如上表所示。
運(yùn)營商行業(yè)[8]是大數(shù)據(jù)應(yīng)用技術(shù)的典型行業(yè),隨著通信行業(yè)的普及,以及人們對網(wǎng)絡(luò)的需求越來越大,運(yùn)營商的在線服務(wù)需求也來越大。對于客戶,借助在線服務(wù)能更加便捷地了解產(chǎn)品和業(yè)務(wù)辦理;對于運(yùn)營商,在線服務(wù)在降低成本的同時也緩解了線下業(yè)務(wù)辦理的壓力。下面,以運(yùn)營商行業(yè)為例,設(shè)計(jì)實(shí)驗(yàn)案例,其中主要包括實(shí)驗(yàn)解決方案、技術(shù)選型、實(shí)驗(yàn)環(huán)境部署、實(shí)驗(yàn)過程和實(shí)驗(yàn)結(jié)果展示等內(nèi)容。
本實(shí)驗(yàn)案例架構(gòu)采用模塊化設(shè)計(jì),分為數(shù)據(jù)預(yù)處理、數(shù)據(jù)存儲模塊、數(shù)據(jù)處理模塊、數(shù)據(jù)ETL模塊、結(jié)果展現(xiàn)模塊,如圖2所示。

圖2
數(shù)據(jù)預(yù)處理模塊將運(yùn)營商提供的歷史數(shù)據(jù)進(jìn)行格式轉(zhuǎn)換,數(shù)據(jù)存儲模塊將清洗后的數(shù)據(jù)存儲到HDFS[9]上,數(shù)據(jù)處理模塊通過Spark-SQL將存儲在HDFS上的數(shù)據(jù)進(jìn)行處理,再通過Spark和MapReduce[10]對具體的需求進(jìn)行實(shí)現(xiàn),數(shù)據(jù)ETL模塊通過Shell腳本實(shí)現(xiàn)數(shù)據(jù)的獲取及入庫MySQL等操作,結(jié)果展示模塊通過Java Web技術(shù)實(shí)現(xiàn)展示。
數(shù)據(jù)預(yù)處理的方法主要是數(shù)據(jù)清理、數(shù)據(jù)集成、數(shù)據(jù)變換和數(shù)據(jù)歸約,這些預(yù)處理技術(shù)提高了數(shù)據(jù)挖掘模式的質(zhì)量,減少了數(shù)據(jù)挖掘的時間。實(shí)驗(yàn)案例中數(shù)據(jù)預(yù)處理模塊采用Java實(shí)現(xiàn),Java面向?qū)ο缶幊蹋胸S富的接口,可以實(shí)現(xiàn)Excel表格的操作,將Excel數(shù)據(jù)轉(zhuǎn)換成TXT文件。Spark-SQL底層依托于SparkCore,并支持大多數(shù)的HQL語句,可以快速方便地對數(shù)據(jù)進(jìn)行預(yù)處理操作。
數(shù)據(jù)存儲模塊采用HDFS架構(gòu),HDFS是一個具有高容錯性分布式存儲系統(tǒng),提供高吞吐量的數(shù)據(jù)訪問,適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。實(shí)驗(yàn)案例中將已經(jīng)清洗后的數(shù)據(jù)以TXT文件的形式存儲到HDFS上對應(yīng)的外部表指定目錄下。
數(shù)據(jù)處理模塊采用MapReduce/Scala/Spark-SQL實(shí)現(xiàn),MapReduce是一種編程模型框架,它方便程序員在不了解分布式并行編程的情況下,將程序運(yùn)行在分布式系統(tǒng)上。Scala是一種函數(shù)式的面向?qū)ο蟮木幊陶Z言,集成了函數(shù)式編程、面向?qū)ο蟆惒骄幊獭㈩愋桶踩⒒贘VM等特點(diǎn)。Spark-SQL是Spark中處理結(jié)構(gòu)化數(shù)據(jù)的模塊,可用于做優(yōu)化信息操作,Spark-SQL支持大多數(shù)的HQL語句,可以快速、方便地對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析。
數(shù)據(jù)ETL模塊采用Shell處理,Shell語法和結(jié)構(gòu)簡單,學(xué)習(xí)時可以輕松掌握,使用起來方便快捷。遇到不解問題,通過Man命令可以快速找到相關(guān)命令和參數(shù)的使用方法說明。在文本處理方面,主要采用AWK和SED兩種技術(shù),輕松實(shí)現(xiàn)對文本的復(fù)雜處理。在這個模塊中,主要運(yùn)用功能強(qiáng)大的命令,快速高效地完成程序開發(fā)任務(wù)。
結(jié)果展示模塊采用Java Web實(shí)現(xiàn),學(xué)生能隨意更換可視化主題,并且可以根據(jù)定制化的產(chǎn)品需求,自定義展示平臺的結(jié)構(gòu)、布局、配色和數(shù)據(jù)圖表。實(shí)驗(yàn)案例是大數(shù)據(jù)技術(shù)案例,專注大數(shù)據(jù)處理流程,數(shù)據(jù)可視化部分只提供數(shù)據(jù)展示的方式、方法,不再對Java Web的工程做詳細(xì)介紹。
實(shí)驗(yàn)平臺運(yùn)用普開數(shù)據(jù)“產(chǎn)、學(xué)、研、用”一體化平臺,平臺由教學(xué)模塊、實(shí)驗(yàn)?zāi)K和科研模塊組成,平臺基于Docker技術(shù)[11-12],提供了豐富的實(shí)驗(yàn)鏡像資源,能靈活實(shí)現(xiàn)Hadoop、Spark、Hive、Hbase、TensorFlow等不同的大數(shù)據(jù)實(shí)驗(yàn)環(huán)境,使用者也可以根據(jù)基礎(chǔ)鏡像自由搭建滿足實(shí)驗(yàn)要求的實(shí)驗(yàn)環(huán)境。目前,Hadoop環(huán)境搭建已經(jīng)可以輕松實(shí)現(xiàn),所以,本實(shí)驗(yàn)案例選擇三節(jié)點(diǎn)的Hadoop集群為基礎(chǔ)實(shí)驗(yàn)環(huán)境進(jìn)行環(huán)境部署,環(huán)境部署步驟包括安裝MySQL、安裝部署Hive數(shù)據(jù)倉庫、安裝部署Spark,詳細(xì)步驟如圖3所示。

圖3
實(shí)驗(yàn)案例環(huán)境主要包括集群(包括3個節(jié)點(diǎn):Master、Slave01、Slave02),CentOS7.5、Hadoop2.7.3、Eclipse4.7、Java1.8.1、Spark2.1.1、MySQL5.7.17、Hive1.2.1等。
實(shí)驗(yàn)?zāi)康模簩W(xué)生通過這個綜合性實(shí)驗(yàn)案例的練習(xí),掌握大數(shù)據(jù)處理流程和綜合應(yīng)用大數(shù)據(jù)相關(guān)技術(shù)的能力。
任務(wù)要求:實(shí)驗(yàn)對服務(wù)商給出的歷史數(shù)據(jù)進(jìn)行分析,以圖形化的方式直觀展現(xiàn)各服務(wù)區(qū)域服務(wù)指標(biāo)達(dá)標(biāo)情況,以及展現(xiàn)各服務(wù)區(qū)域的累積服務(wù)量。通過數(shù)據(jù)分析,對各類用戶做多維畫像,降低用戶的投訴和流失。
數(shù)據(jù)是運(yùn)營商提供的歷史數(shù)據(jù),由工單歷史數(shù)據(jù)和專席通話記錄數(shù)據(jù)兩部分組成。工單歷史數(shù)據(jù)包含省份、單號、賬號等16個字段,專席通話記錄數(shù)據(jù)包含主叫號碼、被叫號碼、呼叫類型和呼叫時間4個字段。
實(shí)驗(yàn)步驟如上頁圖2所示,具體如下。
步驟一:使用Java POI對源文件進(jìn)行格式的轉(zhuǎn)換,將Excel表格中的工單數(shù)據(jù)、話單數(shù)據(jù)內(nèi)容解析后,寫到TXT文本文件中;
步驟二:使用Spark-SQL對第一步處理后的文件進(jìn)行清洗;
步驟三:將預(yù)處理后的數(shù)據(jù)存儲到HDFS上的指定位置;
步驟四:使用Spark-SQL創(chuàng)建外部表,然后將數(shù)據(jù)加載到外部表的指定位置,完成數(shù)據(jù)的存儲,作為下一模塊數(shù)據(jù)分析處理的數(shù)據(jù)源;
步驟五:在Spark-SQL中創(chuàng)建庫文件,在庫中創(chuàng)建投訴風(fēng)險表、投訴風(fēng)險展示數(shù)據(jù)表、不同類用戶指標(biāo)表、全區(qū)域服務(wù)統(tǒng)計(jì)表、服務(wù)效能表、故障區(qū)域分布表、各省工單量表、風(fēng)險投訴各類用戶數(shù)量表、累計(jì)工單量表,并按需求對各表進(jìn)行分布式統(tǒng)計(jì);
步驟六:利用MapReduce編程實(shí)現(xiàn)全區(qū)域服務(wù)統(tǒng)計(jì)表的數(shù)據(jù)分析;
步驟七:通過Bash腳本將之前數(shù)據(jù)處理模塊的需求分析結(jié)果導(dǎo)出,再在關(guān)系型數(shù)據(jù)庫中建庫建表,最后以加載本地數(shù)據(jù)的方式向數(shù)據(jù)庫中加載數(shù)據(jù),完成數(shù)據(jù)的ETL;
步驟八:使用Java Web實(shí)現(xiàn)結(jié)果數(shù)據(jù)可視化。
實(shí)驗(yàn)通過大數(shù)據(jù)解決方案,從客戶提供的數(shù)據(jù)中分析得出有效的信息,并以豐富直觀的圖表形式進(jìn)行展示,為決策機(jī)構(gòu)提供有效的支撐。
大數(shù)據(jù)課程體系在大數(shù)據(jù)人才培養(yǎng)中起著重要作用,決定著人才培養(yǎng)的質(zhì)量。以Hadoop、Spark為基礎(chǔ)的大數(shù)據(jù)技術(shù)錯綜復(fù)雜,學(xué)生學(xué)習(xí)時困難重重,因此在教學(xué)的過程中,在學(xué)生理論知識學(xué)習(xí)的基礎(chǔ)上,應(yīng)加強(qiáng)實(shí)驗(yàn)練習(xí),通過實(shí)驗(yàn)案例的學(xué)習(xí),逐步由基礎(chǔ)實(shí)驗(yàn)案例過渡到綜合性實(shí)驗(yàn)案例,真正做到理論和實(shí)踐相結(jié)合。綜合性實(shí)驗(yàn)案例有著最強(qiáng)的實(shí)踐應(yīng)用特性,通過本實(shí)驗(yàn)案例的學(xué)習(xí),學(xué)生在大數(shù)據(jù)技術(shù)的理解和應(yīng)用會有更大的提升,同時深化了產(chǎn)教融合,促進(jìn)人才鏈、產(chǎn)業(yè)鏈和創(chuàng)新鏈有機(jī)銜接,形成產(chǎn)教良性互動、校企優(yōu)勢互補(bǔ)的良好氛圍,從而達(dá)到大數(shù)據(jù)專業(yè)人才的培養(yǎng)目標(biāo)。