付影平,馬 晶,杜 程
(西安郵電大學(xué) 信息中心,陜西 西安 710061)
基于Hadoop的校園一卡通數(shù)據(jù)分析
付影平,馬晶*,杜程
(西安郵電大學(xué) 信息中心,陜西西安710061)
文章通過對校園一卡通消費(fèi)數(shù)據(jù)特征進(jìn)行分析,發(fā)現(xiàn)學(xué)生消費(fèi)行為背后隱藏的規(guī)律。文章采用數(shù)據(jù)挖掘統(tǒng)計分析的方法對前期獲取的原始數(shù)據(jù)進(jìn)行篩選,從不同年級、不同就餐地點(diǎn)兩個方面考慮,研究不同群體的消費(fèi)習(xí)慣。數(shù)據(jù)處理是在Hadoop(分布式系統(tǒng)基礎(chǔ)架構(gòu))框架下采用MapReduce(一種編程模型,映射和化簡)方法,通過對關(guān)鍵字過濾之后得到統(tǒng)計結(jié)果并將其可視化。
校園一卡通;消費(fèi)數(shù)據(jù);Hadoop;MapReduce
當(dāng)下,眾多高校都在積極建設(shè)數(shù)字化校園。校園一卡通系統(tǒng)作為數(shù)字化校園的重要組成部分,是校園信息化建設(shè)的基礎(chǔ)工程之一,主要具有綜合消費(fèi)、身份識別、金融服務(wù)、公共信息服務(wù)等功能。校園一卡通卡片取代了以前各種證件(包括學(xué)生證、工作證、借書證、出入證等)的全部或部分功能,最終實(shí)現(xiàn)“一卡在手,走遍校園”。以校園卡為紐帶促進(jìn)數(shù)字校園的建設(shè),擴(kuò)展校園卡和業(yè)務(wù)系統(tǒng)的結(jié)合應(yīng)用,會產(chǎn)生大量學(xué)生消費(fèi)和日常活動數(shù)據(jù)。通過對這些數(shù)據(jù)進(jìn)行分析,可發(fā)現(xiàn)其潛在價值,促進(jìn)學(xué)校管理效率和水平的提升。
1.1Hadoop介紹
Hadoop是由Apache Lucene的創(chuàng)始人Doug Cutting創(chuàng)建的,起源于開源網(wǎng)絡(luò)搜索引擎Apache Nutch,它本身也是Lucene項目的一部分。Hadoop框架中最核心的設(shè)計是分布式文件系統(tǒng)( Hadoop Distributed File System,HDFS)和MapReduce。HDFS提供了海量數(shù)據(jù)的存儲,MapReduce提供了對海量數(shù)據(jù)的計算[1]。HDFS在集群上實(shí)現(xiàn)分布式文件系統(tǒng),MapReduce在集群上實(shí)現(xiàn)了分布式計算和任務(wù)處理[2]。HDFS在MapReduce任務(wù)處理過程中提供了文件操作和存儲等支持,MapReduce在HDFS的基礎(chǔ)上實(shí)現(xiàn)了任務(wù)的分發(fā)、跟蹤、執(zhí)行等工作,并收集結(jié)果,二者相互作用,完成了Hadoop分布式集群的主要任務(wù)[3]。
1.2MapReduce介紹
MapReduce是一種可用于數(shù)據(jù)處理的編程模型。Hadoop可以運(yùn)行各種語言版本的MapReduce程序。MapReduce本質(zhì)上是并行運(yùn)行的,因此可以將大規(guī)模的數(shù)據(jù)分析任務(wù)分發(fā)給任何一個擁有足夠多機(jī)器的數(shù)據(jù)中心。MapReduce的優(yōu)勢在于處理大規(guī)模數(shù)據(jù)集。MapReduce實(shí)現(xiàn)了存儲的均衡,但未實(shí)現(xiàn)計算的均衡。MapReduce模型主要有Mapper和Reducer兩個抽象類。Mapper端主要負(fù)責(zé)對數(shù)據(jù)的分析處理,最終轉(zhuǎn)化為Hadoop的數(shù)據(jù)結(jié)構(gòu);Reducer 端主要是獲取Mapper出來的結(jié)果,對結(jié)果進(jìn)行統(tǒng)計[4]。
為了充分利用Hadoop架構(gòu)下MapReduce的并行處理優(yōu)勢,需要將查詢表示成MapReduce作業(yè)。MapReduce任務(wù)過程分為兩個處理階段:Map階段和Reduce階段。每個階段都以鍵值對作為輸入和輸出,其類型由程序自己選擇。只需要程序員自己寫入Map函數(shù)和Reduce函數(shù)。本文使用MapReduce的邏輯數(shù)據(jù)流,如圖1所示。

圖1 邏輯數(shù)據(jù)流
2.1消費(fèi)數(shù)據(jù)結(jié)構(gòu)
一卡通數(shù)據(jù)單日產(chǎn)生量大、來源廣泛、產(chǎn)生人群類型復(fù)雜。消費(fèi)日志數(shù)據(jù)包括證件號碼、卡號、第二證件號碼、流水號、商戶名稱、交易金額、交易時間等18項信息。而此次需要獲取的關(guān)鍵數(shù)據(jù)主要是證件號碼、第二證件號碼(身份證)、商戶名稱、交易金額和交易時間等。
2.2消費(fèi)數(shù)據(jù)分析設(shè)計
2.2.1基于年級的消費(fèi)數(shù)據(jù)分析方法設(shè)計
在近兩萬名學(xué)生中,不同年級因?yàn)榻虒W(xué)計劃安排差異以及高年級學(xué)生考研、找工作等因素影響,會在消費(fèi)地點(diǎn)、消費(fèi)時間等方面有差別。從這些方面分析學(xué)生消費(fèi)行為,可以更好地幫助學(xué)校引導(dǎo)學(xué)生進(jìn)行實(shí)際需求的消費(fèi)。
按照上述思路,通過從原始數(shù)據(jù)“學(xué)生證件號”“消費(fèi)商鋪”以及“消費(fèi)金額”等字段進(jìn)行數(shù)據(jù)提取,將年級和消費(fèi)地點(diǎn)等條件相結(jié)合,計算不同年級在不同地點(diǎn)的平均消費(fèi)額,以此來發(fā)現(xiàn)不同年級選擇消費(fèi)地點(diǎn)的傾向性;通過從原始數(shù)據(jù)“學(xué)生證件號”和“消費(fèi)商鋪”以及“消費(fèi)時間”等字段進(jìn)行數(shù)據(jù)提取,以年級、消費(fèi)地點(diǎn)及時間段為關(guān)鍵字,計算出不同消費(fèi)地點(diǎn)在各個時間段內(nèi)發(fā)生的消費(fèi)次數(shù),用于判斷相同時間段內(nèi),哪些地點(diǎn)是消費(fèi)發(fā)生的熱點(diǎn)地區(qū)。
2.2.2基于位置的消費(fèi)數(shù)據(jù)分析方法設(shè)計
學(xué)校有兩個食堂,但在兩個食堂建成之后,并沒有數(shù)據(jù)表明其設(shè)置是否合理、師生是否滿意,是否因環(huán)境問題而選擇不同的就餐地點(diǎn)。通過對數(shù)據(jù)的分析,可以提示學(xué)校對消費(fèi)人次較少的地方加強(qiáng)建設(shè),增強(qiáng)服務(wù)提供能力,提升學(xué)生消費(fèi)體驗(yàn)。
按照上述思路,將原始數(shù)據(jù)中的消費(fèi)時間和消費(fèi)地點(diǎn)提取出來,將月份和兩個食堂作為關(guān)鍵字,依據(jù)不同時間對消費(fèi)人次和每月單次平均消費(fèi)額進(jìn)行計算。
采用Hadoop框架,實(shí)現(xiàn)是在Ubuntu和Windows操作系統(tǒng)中完成的,數(shù)據(jù)采集時間為2015年3月1日至2016年3月20日,主要采用MapReduce和HDFS技術(shù)完成數(shù)據(jù)分析工作。
3.1數(shù)據(jù)分析平臺搭建
本次環(huán)境的搭建如圖2所示,主要分為兩個部分。一端是Hadoop集群,在集群中分為Master和Slave兩個角色,其中Master是Hadoop的主節(jié)點(diǎn),主要是管理文件系統(tǒng)的命名空間和客戶端對文件系統(tǒng)的訪問,Slave 則作為管理和存儲數(shù)據(jù)。MapReduce框架是由一個單獨(dú)運(yùn)行在Master節(jié)點(diǎn)上的JobTracker和運(yùn)行在每個集群Slave節(jié)點(diǎn)的TaskTracker共同組成的[5]。Master節(jié)點(diǎn)負(fù)責(zé)調(diào)度構(gòu)成一個作業(yè)的所有任務(wù),這些任務(wù)分布在不同的從節(jié)點(diǎn)上。主節(jié)點(diǎn)監(jiān)控它們的執(zhí)行情況,并且重新執(zhí)行之前的失敗任務(wù);Slave節(jié)點(diǎn)僅負(fù)責(zé)由Master節(jié)點(diǎn)指派的任務(wù)。當(dāng)一個Job被提交時,JobTracker接收到提交作業(yè)和配置信息之后,就會將配置信息等分發(fā)給Slave節(jié)點(diǎn),同時調(diào)度任務(wù)并監(jiān)控TaskTracker的執(zhí)行。

圖2 環(huán)境搭建示意
另一部分是在Windows7上安裝Eclipse開發(fā)軟件,配置Hadoop開發(fā)環(huán)境,通過以太網(wǎng)連接Hadoop集群Master,利用Eclipse的開發(fā)環(huán)境來控制HDFS和調(diào)用MapReduce。
Hadoop操作環(huán)境為Ubuntu14.4系統(tǒng),Hadoop軟件版本為2.6.4,集群架構(gòu)為偽分布式。Eclipse安裝在Windows7操作系統(tǒng)中,軟件版本為4.5.0,HadoopEclipse插件版本為hadoop-eclipse-plugin-2.6.4。Hadoop是一個強(qiáng)大的并行框架,它允許任務(wù)在其分布式集群上并行處理[6]。
3.2消費(fèi)數(shù)據(jù)預(yù)處理
本文獲取的原始數(shù)據(jù)是以Excle格式存儲的,需要先將其以UTF-8編碼形式轉(zhuǎn)換為txt格式,以便MapReduce識別、處理。在對原始數(shù)據(jù)分析過程中發(fā)現(xiàn)有些數(shù)據(jù)是不完整的,或者有很多數(shù)據(jù)如果不進(jìn)行剔除,會影響最后結(jié)果的準(zhǔn)確性。那么在Mapper函數(shù)進(jìn)行處理之前,要對這些數(shù)據(jù)進(jìn)行一次清洗,將無效數(shù)據(jù)進(jìn)行剔除,避免不必要的誤差。
3.3基于年級的消費(fèi)行為分析
根據(jù)上述數(shù)據(jù)分析方法,基于年級的消費(fèi)數(shù)據(jù)設(shè)計,是利用Hadoop的MapReduce方法進(jìn)行一個關(guān)鍵字段的過濾以及一個群體共同特征的統(tǒng)計,得出這個特征群體的平均值并進(jìn)行對比。代碼流程如圖3所示。

圖3 基于年級消費(fèi)數(shù)據(jù)分析流程
在前期各個年級的消費(fèi)數(shù)據(jù)代碼運(yùn)行之后,各個年級在不同消費(fèi)地點(diǎn)段平均消費(fèi)金額對比如圖4所示。

圖4 各個年級在相同地點(diǎn)消費(fèi)對比
其中2011級學(xué)生的數(shù)據(jù)截止到2015年6月前,2015級學(xué)生數(shù)據(jù)從9月開始,從圖4中可以看出,2011級學(xué)生在旭日苑消費(fèi)比其他低年級要高。大四畢業(yè)生因?yàn)檎n業(yè)量少,如果沒有參加實(shí)驗(yàn)室或其他社團(tuán),那么每天主要的消費(fèi)活動范圍就在宿舍樓附近,而旭日苑是離宿舍最近的食堂;從勤工助學(xué)商店消費(fèi)平均額可以看出,大一、大二學(xué)生略高一些。
3.4基于位置的消費(fèi)行為分析
基于上述關(guān)于食堂的消費(fèi)數(shù)據(jù)分析方法的設(shè)計,因此在關(guān)于食堂的流程圖設(shè)計上,主要依據(jù)季節(jié)以及各個月份每個食堂的單次平均消費(fèi)額來對比,代碼流程如圖5所示。

圖5 基于位置的消費(fèi)數(shù)據(jù)流分析
基于位置的數(shù)據(jù)可視化,如圖6所示,可以更加直觀地對比不同季節(jié)對于食堂的選擇差異。

圖6 消費(fèi)次數(shù)對比
由圖6可以看出,學(xué)生更傾向于旭日苑而不是美食廣場,季節(jié)對于學(xué)生選擇食堂并沒有太大的影響,基本在所有季節(jié),旭日苑的消費(fèi)次數(shù)都是美食廣場的2倍左右。
本次工作因?yàn)樾枰M(jìn)行大量數(shù)據(jù)的處理,在平臺搭建上選擇了Hadoop框架。針對新校區(qū)的本科生,從不同年級、不同就餐地點(diǎn)兩個方面進(jìn)行消費(fèi)行為的統(tǒng)計。發(fā)現(xiàn),低年級和高年級在消費(fèi)時間段和消費(fèi)地點(diǎn)都會有一定差異,低年級的消費(fèi)地點(diǎn)更分散,消費(fèi)時間段高峰期在下課后;高年級恰恰相反,消費(fèi)點(diǎn)多數(shù)集中在宿舍樓附近,消費(fèi)時間段剛好會避開低年級消費(fèi)高峰期;對兩個食堂消費(fèi)進(jìn)行統(tǒng)計發(fā)現(xiàn),旭日苑消費(fèi)次數(shù)一直都是美食廣場的兩倍。
[1](美)懷特.Hadoop權(quán)威指南[M].曾大聃,周傲英,譯.北京:清華大學(xué)出版社,2010.
[2]黃懋.基于集群的HDFS高可用性研究和實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2012.
[3]蔡睿誠.基于HDFS的小文件處理與相關(guān)MapReduce計算模型性能的優(yōu)化與改進(jìn)[D].吉林:吉林大學(xué),2012.
[4](美)拉姆.Hadoop實(shí)戰(zhàn)[M].韓冀中,譯.北京:人民郵電出版社,2011 .
[5]張永坤.基于進(jìn)程剩余運(yùn)行時間的集群負(fù)載平衡系統(tǒng)[D].武漢:華中科技大學(xué),2004.
[6]賈玉生.基于Hadoop的分布式文本分類研究[D].北京:北京工業(yè)大學(xué),2013.
Analysis on data of the Campus IC Card based on Hadoop
Fu Yingping, Ma Jing, Du Cheng
(Xi'an University of Posts and Telecommunications, Xi'an 710061, China)
This article found the hidden rules of students' consumption behavior through the analysis on characteristics of the Campus IC Card consumption data. In this paper, the methods of data mining and statistical analysis are used to screen the raw data,in terms of two sides including different grades and different restaurants to considerate and study the consumption habits of different groups. Data processing means to adopt the MapReduce method under the Hadoop framework to get statistical results and visualize them after fltering the keywords.
Campus IC Card; consumption data; Hadoop; MapReduce
付影平(1973— ),男,陜西西安,助理工程師;研究方向:計算機(jī)網(wǎng)絡(luò)安全。*
馬晶(1991— ),女,陜西渭南,碩士研究生;研究方向:云計算理論與應(yīng)用。