高武奇,岳 鑫
(1.西安工業(yè)大學(xué) 計算機科學(xué)與工程學(xué)院,陜西 西安 710021;2.西安工業(yè)大學(xué) 理學(xué)院,陜西 西安710021)
基于HBase的圖書借閱數(shù)據(jù)挖掘模型設(shè)計與實現(xiàn)
高武奇1,岳 鑫2
(1.西安工業(yè)大學(xué) 計算機科學(xué)與工程學(xué)院,陜西 西安 710021;2.西安工業(yè)大學(xué) 理學(xué)院,陜西 西安710021)
針對高校圖書借閱數(shù)據(jù)量大難以存儲和有效利用的問題,提出基于云計算的分布式數(shù)據(jù)庫HBase來存儲相關(guān)數(shù)據(jù),用數(shù)據(jù)挖掘的方式對其分析的模式,在分析Hadoop、HBase和數(shù)據(jù)挖掘有關(guān)技術(shù)的基礎(chǔ)上,給出了詳細(xì)的實現(xiàn)方案。實證結(jié)果表明:這種方式能有效實現(xiàn)對海量數(shù)據(jù)難以存儲和分析。
HBase;Hadoop;數(shù)據(jù)挖掘;支持向量機;圖書館
數(shù)據(jù)是信息的載體,隨著信息化的不斷發(fā)展,數(shù)據(jù)在現(xiàn)代社會生活中承擔(dān)著越來越重要的角色。社會網(wǎng)絡(luò)分析就是利用圖論、數(shù)據(jù)挖掘等技術(shù)手段從社會網(wǎng)絡(luò)數(shù)據(jù)集中尋找有用的信息。由于社會網(wǎng)絡(luò)分析所處理的數(shù)據(jù)通常是很龐大的,因而對數(shù)據(jù)處理的能力要求很高。
圖書管理系統(tǒng)每天都會產(chǎn)生大量的統(tǒng)計數(shù)據(jù),這些海量信息中蘊涵了對圖書管理(如采購、館藏、咨詢等)有指導(dǎo)性的潛在信息。但傳統(tǒng)的圖書管理系統(tǒng)只有簡單的借閱查詢功能,難以從多維的角度對數(shù)據(jù)進行提取,進而為圖書管理提供決策支持[1]。
數(shù)據(jù)挖掘是一種決策支持過程,它主要基于人工智能、機器學(xué)習(xí)、統(tǒng)計學(xué)技術(shù),高度自動化地分析企業(yè)原有的數(shù)據(jù),做出歸納性的推理,從中挖掘出潛在模式,預(yù)測客戶的行為,幫助企業(yè)的決策者調(diào)整市場策略以減少風(fēng)險,做出正確的決策。
以上情況就迫切需要我們解決數(shù)據(jù)存儲和分析中存在的瓶頸。在分析了現(xiàn)有分布式存儲系統(tǒng)與云計算平臺的基礎(chǔ)上,文中提出了一種基于Hadoop平臺的分布式數(shù)據(jù)存儲和應(yīng)用方案。本文重點闡述了圖書借閱數(shù)據(jù)分布式存儲與查詢在Hadoop平臺上的實現(xiàn)。最后在Hadoop數(shù)據(jù)服務(wù)平臺上實現(xiàn)了面向軟件客戶端的數(shù)據(jù)訪問服務(wù)。
圖書借閱數(shù)據(jù)分布式存儲與查詢方案在Hadoop平臺上的成功實施具有很重要的意義。Hadoop平臺只需要部署在普通的廉價PC機上即可運行,數(shù)據(jù)處理能力卻很強[2],因此具有很高的現(xiàn)實意義與應(yīng)用價值。
Hadoop文件系統(tǒng)是主從架構(gòu),一個Hadoop文件系統(tǒng)由唯一一個目錄節(jié)點(NameNode)和數(shù)個數(shù)據(jù)節(jié)點(DataNodes)組成。目錄節(jié)點是集群里面的主節(jié)點,負(fù)責(zé)文件名的維護管理,也是客戶端訪問文件的入口。文件名的維護包括文件和目錄的創(chuàng)建、刪除、重命名等。同時也管理數(shù)據(jù)塊和數(shù)據(jù)節(jié)點的映射關(guān)系,客戶端需要訪問目錄節(jié)點才能知道一個文件的所有數(shù)據(jù)塊都保存在哪些數(shù)據(jù)節(jié)點上。數(shù)據(jù)節(jié)點一般就是集群里面的一臺機器,負(fù)責(zé)數(shù)據(jù)的存儲和讀取。在寫入時,由目錄節(jié)點分配數(shù)據(jù)塊的保存,然后客戶端直接寫到對應(yīng)的數(shù)據(jù)節(jié)點。在讀取時,當(dāng)客戶端從目錄節(jié)點獲得數(shù)據(jù)塊的映射關(guān)系后,就會直接到對應(yīng)的數(shù)據(jù)節(jié)點讀取數(shù)據(jù)。數(shù)據(jù)節(jié)點也要根據(jù)目錄節(jié)點的命令創(chuàng)建、刪除數(shù)據(jù)塊,和冗余復(fù)制[3]。

圖1 Hadoop文件系統(tǒng)

圖2 MapReduce的運行模型
MapReduce的運行模型如圖2一個Map操作就是對一部分原始數(shù)據(jù)進行指定的操作。每個Map操作都針對不同的原始數(shù)據(jù),因此Map與Map之間是互相獨立的,這就使得他們可以充分并行化。一個Reduce操作就是對每個Map所產(chǎn)生的一部分中間結(jié)果進行合并操作,每個Reduce所處理的Map中間結(jié)果互不交叉,所有Reduce產(chǎn)生的最終結(jié)果經(jīng)過簡單連接就形成了完整的結(jié)果集,因此Reduce也可在并行環(huán)境下執(zhí)行。
HBase--Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),利用HBase技術(shù)可在廉價PC Server上搭建起大規(guī)模結(jié)構(gòu)化存儲集群。
HBase是Google Bigtable的開源實現(xiàn),類似Google Bigtable利用GFS作為其文件存儲系統(tǒng),HBase利用Hadoop HDFS作為其文件存儲系統(tǒng);Google運行MapReduce來處理Bigtable中的海量數(shù)據(jù),HBase同樣利用 Hadoop MapReduce來處理HBase中的海量數(shù)據(jù);Google Bigtable利用 Chubby作為協(xié)同服務(wù),HBase利用Zookeeper作為對應(yīng)。
圖3描述了Hadoop EcoSystem中的各層系統(tǒng),其中HBase位于結(jié)構(gòu)化存儲層,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩(wěn)定服務(wù)和failover機制。

圖3 Hadoop EcoSystem系統(tǒng)
此外,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數(shù)據(jù)統(tǒng)計處理變的非常簡單。 Sqoop則為HBase提供了方便的RDBMS數(shù)據(jù)導(dǎo)入功能,使得傳統(tǒng)數(shù)據(jù)庫數(shù)據(jù)向HBase中遷移變的非常方便。
數(shù)據(jù)挖掘是一種決策支持過程,它主要基于人工智能、機器學(xué)習(xí)、統(tǒng)計學(xué)技術(shù),高度自動化地分析企業(yè)原有的數(shù)據(jù),做出歸納性的推理,從中挖掘出潛在模式,預(yù)測客戶的行為,幫助企業(yè)的決策者調(diào)整市場策略以減少風(fēng)險,做出正確的決策。
CRISP-DM是一種業(yè)界認(rèn)可的用于指導(dǎo)數(shù)據(jù)挖掘工作的方法。該模型將一個知識發(fā)現(xiàn)(KDD,Knowledge Discovery in Database)工程分為6個不同的,但順序并非完全不變的階段[5],如圖4所示。

圖4 CRISP-DM數(shù)據(jù)挖掘流程圖
1)商業(yè)理解。在第一個階段我們必須從商業(yè)的角度上面了解項目的要求和最終目的是什么,并將這些目的與數(shù)據(jù)挖掘的定義以及結(jié)果結(jié)合起來。
2)數(shù)據(jù)理解。數(shù)據(jù)的理解以及收集,對可用的數(shù)據(jù)進行評估。
3)數(shù)據(jù)準(zhǔn)備。對可用的原始數(shù)據(jù)進行一系列的組織以及清洗,使之達到建模需要。
4)建立模型。應(yīng)用數(shù)據(jù)挖掘工具建立模型。
5)模型評估。重點具體考慮得出的結(jié)果是否符合第一步的商業(yè)目的.
6)結(jié)果部署。部署就是使用您的新的深入見解在組織內(nèi)部進行改善的過程。這可以表示正式的集成,例如實施一個用于生成隨后要讀入數(shù)據(jù)倉庫中的流失得分的PASW Modeler模型。此外,部署還意味著您可以使用從數(shù)據(jù)挖掘中獲得的深入見解改善您的組織。例如,也許您會發(fā)現(xiàn)您數(shù)據(jù)中的報警模式指明年齡超過30歲的客戶行為會發(fā)生改變。這些結(jié)果可能不會正式集成到您的信息系統(tǒng)中,但它們無疑對于計劃和制定營銷決策非常有用。
用于分類分析的數(shù)據(jù)挖掘算法有決策樹、神經(jīng)網(wǎng)絡(luò)和支持向量機等。本文采取在數(shù)據(jù)量相對較小情況下依然可以獲得較好性能的支持向量機作為數(shù)據(jù)挖掘算法。支持向量機可以支持向量機簡稱SVM(Support Vector Machines)是Vapnik等人根據(jù)統(tǒng)計學(xué)理論提出的一種機器學(xué)習(xí)方法,它集成了最大間隔超平面、Mercer核、凸二次規(guī)劃和松弛變量等多項技術(shù)[4]。支持向量機的方法根據(jù)結(jié)構(gòu)風(fēng)險最小化原則,大大提高學(xué)習(xí)機的泛化能力,它將優(yōu)化問題轉(zhuǎn)化為求解一個凸二次規(guī)劃的問題,二次規(guī)劃所得的解是唯一的且為全局最優(yōu)解,這樣就不存在一般神經(jīng)網(wǎng)絡(luò)的局部極值問題。支持向量機由于較好地解決了小樣本、非線性、高維數(shù)、局部極小點等實際問題,在若干具有挑戰(zhàn)性的應(yīng)用中,獲得了目前為止最好的性能。支持向量機已經(jīng)逐漸成為解決模式分類問題的首選工具。特征提取對分類有著重要的影響,如何有效提取EEG信號所包含的信息成為腦電分類問題的關(guān)鍵步驟,自發(fā)腦電信號具有豐富的頻率成分,不同的生理狀態(tài)和病因下,某些頻段的能量在頭皮不同區(qū)域的分布會發(fā)生變化,因此可以將不同區(qū)域上不同頻段的能量作為分類器的特征向量。小波變換是一種多尺度的信號分析方法,具有良好的時頻局部化特性,可以用于EEG信號的頻率能量特征提取。
4.1 系統(tǒng)支持環(huán)境
1)圖書館管理系統(tǒng)采用Windows2003下的MS SQL Server2000;
2)Hbase數(shù)據(jù)庫采用Red hat 9下的Hadoop和HBase CHD3B4版本;
3)Clementine數(shù)據(jù)挖掘工具采用在Windows XP下的SPSS Clementine13.0。
4.2 基于HBase的圖書借閱數(shù)據(jù)挖掘?qū)崿F(xiàn)流程

圖5 基于HBase的圖書借閱數(shù)據(jù)挖掘?qū)崿F(xiàn)流程
1)圖書館借閱數(shù)據(jù)導(dǎo)入My SQL數(shù)據(jù)庫
圖書館借閱數(shù)據(jù)庫MS SQL SERVER屬于關(guān)系型數(shù)據(jù)庫,Hbase輸入分布式數(shù)據(jù)庫,從SQL SERVER直接到HBase較困難,但APACHE提供了SNOOP工具可以實現(xiàn)My SQL到HBase的轉(zhuǎn)換,因此本文采用首先將SQL Server轉(zhuǎn)入My SQL,然后利用SNOOP工具從My SQL導(dǎo)入HBase數(shù)據(jù)庫。
將SQL Server轉(zhuǎn)入My SQL。使用SQL Server自帶的DTS數(shù)據(jù)轉(zhuǎn)換工具,設(shè)置如圖6的源、目標(biāo)和轉(zhuǎn)換規(guī)則后即可實現(xiàn)二者之間的轉(zhuǎn)換。

圖6 將SQL Server轉(zhuǎn)入My SQL
2)利用SNOOP工具從My SQL導(dǎo)入HBase數(shù)據(jù)庫


3)Clementine數(shù)據(jù)挖掘工具
用于挖掘的樣本數(shù)據(jù)和模型部署階段的輸入的數(shù)據(jù)均用數(shù)據(jù)庫作為數(shù)據(jù)源,這樣可以通過ODBC連接不同的數(shù)據(jù)庫,從而解決模型受數(shù)據(jù)庫平臺的限制。通過模型預(yù)測的結(jié)果也用數(shù)據(jù)庫保存,從而可以在信息系統(tǒng)中以WEB形式查看。圖7為Clementine挖掘流程,上半部分為挖掘過程,下半部分為模型的應(yīng)用。為使模型脫離Clementine應(yīng)用,可以采用導(dǎo)出PMML文件或用Runtime運行,根據(jù)第3部分的分析,這里采用效果較優(yōu)的Runtime引擎部署模型。
支持向量機用于對圖書借閱分析的原理是:把所選擇的圖書借閱做為樣本集,將代表分類結(jié)果的量作為類別屬性輸出。由于所選樣本集是非線性的,因此,采用非線性SVM分類算法。非線性SVM分類算法通過內(nèi)積核函數(shù)的運算,建立一個最優(yōu)分類超平面,根據(jù)樣本離分類超平面的距離,來判斷誤判率。支持向量機構(gòu)建設(shè)置如表1所示。

圖7 Clementine數(shù)據(jù)挖掘流程

表1 支持向量機構(gòu)建設(shè)置
4)分析結(jié)果展示
本系統(tǒng)支持向量機的運行結(jié)果分析如表2所示,從表中可以看出,支持向量機對訓(xùn)練集的誤判數(shù)為578,誤判率為1.022%;對測試集誤判數(shù)為1,誤判率為5%,總樣本的誤判率為1.023%;56 552個訓(xùn)練集的分類正確率為98.978%,20個測試樣本的分類正確率為95%,總的72個樣本的正確率為98.977%。

表2 支持向量機模型分類正確率表
分類正確率表顯示該方法效果理想,可以給出如下結(jié)論:
1)英語和計算機類圖書最受歡迎,借閱次數(shù)多。
2)研究生對圖書館的利用率明顯高于本科生,說明研究生學(xué)習(xí)更積極。
3)??粕饕栝單乃嚿缈祁悎D書,說明他們對文化課的學(xué)習(xí)不夠重視。
文中提出了用基于云計算的HBase來存儲海量圖書借閱數(shù)據(jù)的思想,在此基礎(chǔ)上,采用SPSS Clementine數(shù)據(jù)挖掘工具的支持向量機對借閱情況分析。以某高校圖書館借閱數(shù)據(jù)為樣本,對這種方案進行的實證,結(jié)果表明,這種:這種方式能完成對海量借閱數(shù)據(jù)的分析,對其他大數(shù)據(jù)的存儲和分析提供借鑒。
[1]胡欽文.數(shù)據(jù)倉庫和ETL、OLAP技術(shù)在圖書借閱分析系統(tǒng)中的應(yīng)用[J].中國高新技術(shù)企業(yè),2009(21):63-64.
[2]陳勇.基于Hadoop平臺的通信數(shù)據(jù)分布式查詢算法的設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2009.
[3]王峰,雷葆華.Hadoop分布式文件系統(tǒng)的模型分析[J].電信科學(xué), 2010(12):95-99.
[4]張智,朱齊丹,嚴(yán)勇杰.基于V-支持向量機與ε-支持向量機的非線性系統(tǒng)辨識[J].彈箭與制導(dǎo)學(xué)報, 2006(S1):278-281.
[5]鄭荔平.數(shù)據(jù)挖掘流程中數(shù)據(jù)準(zhǔn)備的探討 [J].漳州師范學(xué)院學(xué)報:自然科學(xué)版,2004(4):65-67.
[6]劉志勇,王阿利,魏迎,等.關(guān)聯(lián)規(guī)則數(shù)據(jù)挖掘在圖書館個性化服務(wù)中的應(yīng)用研究[J].電子設(shè)計工程,2012(7):16-17.
[7]王海濤,陳樹寧.常用數(shù)據(jù)挖掘算法研究[J].電子設(shè)計工程,2011(6):90-92.
Books lending data mining modeling based on the HBase
GAO Wu-qi1,YUE Xin2
(1.School of Computer Science and Engineering,Xi’an Technological University,Xi’an 710021,China;2.School of Science,Xi’an Technological University,Xi’an 710021,China)
This paper addresses the problem of large amount of data storage and effective utilization.Based on cloud computing,distributed database HBase and data mining technology are provided to store book lending data and library lending analyzing.The technologies of Hadoop,Hbase and data mining are studied,and the realization process is given, The experiment shows the method can effectively store mass data and mine the Potential law.
HBase;Hadoop;data mining;VRM;library
TP311.13
A
1674-6236(2017)12-0033-04
2015-08-18稿件編號:201508100
高武奇(1975—),男,陜西合陽人,博士研究生,副教授。研究方向:云計算,計算機仿真,大數(shù)據(jù)等。