張麗萍 葛福鴻
摘? ?要:近年來,國內的微課、慕課、網絡課堂等發展迅速,依托大數據技術,能夠把學習過程和效果更加透明地呈現給每一個學習者。文章基于Hadoop生態系統,設計并開發了一個輕量級的教育類大數據處理系統,可從網絡課堂、網站、微信、APP等新媒體獲取數據。通過對數據的收集、清洗、分析,進而挖掘數據中更多有價值的信息,為學習者提供更好的服務。文章以網絡課程網站中session數據分析為例,通過分析可獲取頁面跳轉轉化率、熱門課程離線統計、廣告流量實時統計和黑名單過濾等,為網絡課程網站的后期建設提供量化依據。
關鍵詞:大數據;教育大數據;Hadoop;session
中圖分類號:G40-057 文獻標志碼:A 文章編號:1673-8454(2021)05-0050-04
隨著移動互聯網技術的發展,大數據的力量開始席卷各個行業領域,并對人們的思維、生活、工作、學習等產生重大的影響。使用新的大數據處理技術,數據的收集、分析和處理都發生了變化,通過對海量數據的收集和數據更深層次的挖掘,能夠發現數據中更多的價值。
本文對學習者行為進行了分析,從大數據分析平臺的設計、環境搭建、session日志分析模塊三個方面進行實踐和探索。研究過程主要分成兩個階段:第一階段是大數據開發系統的規劃和部署。對平臺系統進行構建,對系統需要的組件做進一步規劃,搭建測試服務器和開發環境。第二階段是數據處理模塊的設計和開發。通過對真實場景的模擬,對網絡課程類型網站session數據展開處理,進而設計和模擬一個處理微課及其他慕課網站信息的大數據處理平臺。
一、大數據及相關技術闡述
1.大數據
一般認為,大數據(big data)是通過先進技術進行收集、存儲和處理的數據集合,是海量、不規則的信息,是具有預測力,可以提供決策支持的信息資源。其導致了新的處理技術的誕生,如谷歌的MapReducehe 和開源Hadoop平臺(最初源于雅虎)。更重要的是,這些數據不再需要用傳統的數據庫表格來整齊地排列——一些可以消除僵化的層次結構和一致性的技術也出現了。
大數據的本質在于分析信息時的三個轉變:第一個轉變是,在大數據時代,需要分析的數據更多。不同于傳統的數據分析,收集的數據是部分樣本,大數據分析經常會收集研究對象相關的所有數據。第二個轉變是,不再熱衷于追求精確性。精確性是信息量少的時代的產物。只有接受不精確性,才能充分利用大量的不精確、非結構化的數據,真正挖掘數據寶藏潛在的價值。第三個轉變是,不再熱衷于尋找因果關系。知道“是什么”就夠了,不再糾結于“為什么”。在大數據時代,要讓數據自己“發聲”,不需要知道現象背后的原因。此外,大數據的相關關系分析法不易受主觀意識的影響,且更準確、更快,因此,建立在相關關系分析法基礎上的預測是大數據的核心[1]。
總之,在大規模數據的基礎上進行數據挖掘完成的工作,在小規模數據的基礎上是實現不了的。大數據是人們獲得新的認知的源泉。例如:淘寶可以推薦用戶想要的商品、QQ可以猜出用戶認識誰、京東知道用戶的喜好。大數據在教育領域的應用也在逐漸突出其重要的價值,特別是教育大數據可以為教育部門提供決策依據,為教師對教學進行調整提供量化依據,為學生的學習提供預測和改進依據,為實現個性化學習提供技術支撐。
2.采用的相關技術
(1)Hadoop
Hadoop是采用分布式架構的平臺,為用戶提供可靠的、靈活的數據處理功能,使得用戶的開發變得方便、快捷。Hadoop以HDFS和MapReduce框架為核心。HDFS是一個高度容錯、可靠的分布式文件系統[2]。
(2)Apache Spark
Apache Spark 是專為大規模數據處理而設計的快速、通用的計算引擎。和MapReduce框架相比,Spark是基于內存計算的,在數據處理過程中采用了成本更低的洗牌方式,相比其他大數據處理技術會有極大的效率提升。此外,Apache Spark支持更多的函數,提供交互式的處理環境,在大數據分析和機器學習領域有著巨大的優勢。
(3)Ubuntu系統
Ubuntu是一個高效的Linux操作系統。其提供了可靠穩定的工作環境和用戶交互界面,因而在生產和生活中有很高的使用率。由于大數據開發常用的軟件基本都需要Linux運行環境,因而在課題研究、開發、測試中都會使用Ubuntu系統。
二、學習者訪問session介紹
學習者在瀏覽學習網站時,通常有很多鼠標點擊行為,如點擊菜單中的某個選項、瀏覽某個學習內容、關閉學習頁面等。學習者的每一次對學習內容的操作,可以將其理解為一個行為。一次學習者訪問session,指的是學習者進行一次學習的操作過程,包括進入學習網站、點擊各種操作、離開學習網站。
session實際上是一個網站中最基本的數據和大數據來源。在以往的在線教育類型網站(如微課、慕課等)中,并沒有對session數據進行處理或有類似的處理。因為當網站的訪問量增長較快時,對于session數據的處理效率會大幅度降低。不僅僅需要考慮到對較大規模數據的處理,而且還要解決存儲等問題,因為單臺服務器已經不能滿足這樣龐大數據的處理。然而,在session數據中,又包含著很多有價值的數據。如通過session可以獲取當前訪問網站的人數、學習者訪問的欄目、訪問量較大的欄目。通過這些數據,可以有效地幫助管理員分析哪些欄目受歡迎、哪些欄目值得推薦、網站是否存在異常等等。除此之外,還可以根據session數據幫助實現智能推薦、人物畫像等功能。
三、大數據分析平臺的構建
該平臺有別于傳統的數據分析平臺,除了實現基本的功能需求,平臺主要提供了對大數據的支持。龐大的數據會給集群帶來嚴峻的考驗,如存儲、任務調度、負載均衡等。因而必須保證平臺的穩定、可維護、可擴展、容錯等。
1.平臺特征
在該平臺的設計中,具備如下特點:①支持多種數據源。能夠支持網站、APP、微信平臺等常見媒體的數據。②平臺可靠性強。基本能夠實現數據的完整收集、集中存儲和快速處理。③支持大規模數據的收集和分析。④支持近實時分析和離線分析。⑤有良好的容錯性和擴容性,便于今后進行更深層次的開發。
2.平臺拓撲結構
該平臺采用了樹形拓撲結構,如圖1所示。這樣的設計可以使得平臺易于擴展,容易在網絡中加入分支或者新節點來滿足不同的需求,此外,也能在一定程度上便于隔離故障,不會影響整個系統。在根節點上,Hadoop分布式文件系統可靠、穩定、易于擴展、容錯性高的特點也使得平臺能夠更加穩定地運行。
3.平臺總體結構
平臺的目標主要是對微課類型網站的日志進行分析處理,考慮到平臺的擴展性和實用性,平臺在設計時采用了如圖2所示的結構。
總體上,該平臺分為日志采集模塊、邏輯處理模塊、可視化展示模塊、任務管理模塊。日志采集模塊的主要任務是獲取各個服務器的數據,并對數據進行清洗處理。邏輯處理模塊主要按照不同的場景對數據進行處理,如獲取訂閱量、排名前若干位的課程名稱、訪問年齡分布、搜索關鍵詞排名等。可視化模塊主要對大數據處理的結果通過可視化視覺效果進行展示,更加直觀形象地了解數據的情況。在模塊設計上,該模塊分為圖表展示和數據展示。任務管理模塊主要負責集群的任務調度、任務狀態監控、任務配置等功能。在這里采用了Azkaba對這方面的任務進行管理[3]。
4.開發環境搭建
由于完整設置開發環境的工作量較大,因此對環境進行了適度的調整。具體調節如下:在數據處理流程上,數據在通過采集后導入HDFS,然后Spark直接讀取HDFS中新導入的數據,并進行處理。在這里,數據采集過程簡化為模擬數據生成,即將數據直接導入到HDFS中。
此外,一些學習者的注冊信息等基礎數據,是存儲在MySQL的數據,可以使用sqoop工具便捷導入到數據倉庫Hive中。并在Hive中進行計算。計算的結果可以再使用sqoop導出到MySQL數據庫中,方便其他模塊使用[4]。具體的開發環境如圖3所示。
5.數據設計
由于條件限制和測試需要等原因,直接模擬生產數據有一些困難。因而在模擬數據時,進行了一些簡化。但其并不會影響需求。在一般場景下,采集到的數據都會經過ETL過程。將需要的數據轉化為符合計算的格式,即數據清洗[5]。所以,模擬數據和經過清洗的數據是一致的,并不會影響功能。
(1)學習者基礎信息數據:主要記錄學習者在網站、APP等注冊的信息。可包括學習者登錄名、性別、年齡、專業、城市等。
(2)學習者訪問行為session數據:包括學習者點擊行為的時間、學習者ID、點擊某課程、搜索關鍵詞后進入的頁面、導航、訂閱的課程、進行的討論、參加的小組、學習者的瀏覽行為次數等。
四、學習者訪問session數據分析
在該模塊中,采用spark對session數據進行處理,具體實現的功能如下:
1.學習者信息和Session聚合處理
該模塊主要是對學習者訪問session進行統計分析,可以協助網站管理員看到各種聚合條件下的學習者行為各項統計指標,從而為學習課程的設置和推送提供策略支持。同時也能使用這些參數并結合推薦算法做智能推薦。
指定條件篩選session,可在篩選時設定一些條件,如在某個時間段訪問的學習者,搜索過某些關鍵詞的學習者等。這些信息能幫助我們劃分對象群體,極大地方便對各種復雜業務的邏輯分析。再比如,通過session聚合指標計算,獲取點擊量、觀看量和評論量都排名前10的課程名稱,獲取熱門話題點擊數量排名前10的session,并獲取學習者相應的一些信息。這一功能對于課程的評價機制是非常實用的技術實現,對課程的評價采用量化的手段進行呈現,使評價更加客觀、公平、有說服力。
2.頁面跳轉轉化率統計
在進行網站設計時,一般會對學習者的瀏覽行為進行設計,但設計可能并不是一次性就能滿足需求的,需要不斷地進行調整。通過對頁面跳轉轉化率進行分析,從而對網頁布局、欄目等內容進行更好的優化設計。作為數據分析人員,可以深層次地分析這些數據,從而進行人物畫像、個性化調整等。圖4為一個網頁訪問順序示意。
該圖的場景在網站訪問中是較為常見的,筆者假設各個頁面的編號為1,2,3,4。在設計上,管理員希望訪問次序為1->2->3->4。但是在實際上,訪問次序跟希望的并不一樣。通過頁面單跳轉化率,可以得到真實的訪問次序和熱點的位置,進而分析各頁面設計的合理性。此外,還可以對頁面進行更進一步的劃分,測試頁面熱點區。
該模塊設計實現如下功能:指定范圍內的學習者訪問行為數據,計算和判斷頁面流ID中每兩個頁面組成的頁面切片,它的訪問量是多少;根據指定頁面流中各個頁面切片的訪問量,計算各個頁面的切片轉化率并將計算結果寫入數據庫中。
3.熱門課程離線統計
該模塊主要實現統計點擊、參與、評論的熱門課程排名前若干位的數量。在服務器部署離線統計任務的定時調度。該模塊可以為管理員和學習者提供熱門課程的整體情況,從而對課程的推送進行調整。
4.訪問時長計算占比
在訪問時間占比功能中,對學習者的訪問時間長短進行了劃分,計算單位時間內各個時間段在當前時間段內的比例。
統計網站的session數據中,訪問時長在各個預設時間段范圍內的session占比。session的訪問時長,指一個session從開始訪問到結束訪問之間的時間范圍。通過這個值,管理員可以對學習者的行為進行估計。在一般情況下,學習者會選擇其感興趣的頁面,并在這些頁面停留較長時間,對于不感興趣的頁面,可能停留的時間較少。因此訪問時長也能在一定程度上反映一個學習者的瀏覽習慣。如時間為1s~3s,學習者可能僅僅是簡單瀏覽;而時間為30m以上,可能學習者正在進行學習。如在某一個課程直播頁面的訪問信息中,如果學習者的停留時間普遍低于1分鐘,則很可能這個頁面出現了問題,需要管理員進行管理調整。通過對某個特定時間的占比統計,可以調整模塊的內容、推薦信息等。
5.流量實時統計和黑名單過濾
網站經常會面臨一些異常訪問,因此有必要對數據進行監控和限制。使用大數據技術進行安全監控分析,面對的是整個網站的訪問數據,監控的樣本比傳統監控有極大的增加,通過合理的計算和分析,可以很大程度上提高網站的安全性。
該模塊可以根據session信息來實時統計流量,以發現異常學習者,經過鑒別后,可將異常學習者加入到黑名單中。session通常會記錄一些學習者的訪問信息,當學習者訪問異常時,通過session數據能較為明顯地表現出來。在這里設定為單位時間內,同一學習者的訪問次數大于某值時,即為黑名單學習者,并將其記錄到數據庫中。
6.對結果進行可視化展示
對數據結果進行可視化展示是很重要的一個環節,通過對數據進行可視化展示,可以讓數據更加易于理解[6]。這里使用echarts實現數據的可視化效果,并使用靜態的方式進行數據展示,包括柱狀圖、餅狀圖、折線圖等,使學習者更簡潔直觀地了解數據的基本情況。可視化結果展示示例如圖5、圖6所示。
五、結語
本文詳細介紹了大數據平臺的架構、部署和針對教育類型網站(網絡課程類型)的session數據開發。綜合介紹了基于Hadoop的大數據開發架構以及大數據在學習者行為分析中的應用。基于大數據的學習者行為分析將對教育類平臺的優化和推廣起到積極作用,這種研究思路值得智慧教育研究者借鑒。
參考文獻:
[1]維克托·邁爾-舍恩伯格,肯尼思·庫克耶.大數據時代[M].杭州:浙江人民出版社,2013:8-18.
[2]王正也.基于Hadoop平臺的海量數據查詢分析系統的性能優化研究[D].北京:北京郵電大學,2015:6-10.
[3]劉季函.基于Spark的網絡日志分析系統的設計與實現[D].南京:南京大學,2014.
[4]劉永增,張曉景,李先毅.基于Hadoop/Hive的Web日志分析系統的設計[J]. 廣西大學學報(自然科學版), 2011,36(s1):315-316.
[5]王英哲.大數據時代文獻分析與利用[J].石家莊職業技術學院學報,2014(2):53-54.
[6]張春生,郭長杰,尹兆濤.基于大數據技術的IT基礎設施日志分析系統設計與實現[J].微型電腦應用,2016,32(6):50-51.
(編輯:王曉明)