陳誠 謝勝利
摘要:隨著生活水平的提高,人們的健康意識越來越強。但是目前人們體育運動持續(xù)性還是比較差,為了改變這一現(xiàn)狀,我們研究設(shè)計了基于Hadoop集群的用戶運動推薦系統(tǒng)。系統(tǒng)通過統(tǒng)計分析用戶運動信息,獲取大眾用戶的運動習(xí)慣,設(shè)計人們感興趣的運動模式,以提高人們的運動積極性。系統(tǒng)包括了三大系統(tǒng)組件,用戶運動數(shù)據(jù)采集組件、運動數(shù)據(jù)分析組件和運動數(shù)據(jù)管理組件。
關(guān)鍵詞:運動;互聯(lián)網(wǎng);大數(shù)據(jù);數(shù)據(jù)分析;Hadoop
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)05-0169-02
1 研究背景
目前,中國健身產(chǎn)業(yè)逐漸形成,我國健身市場呈現(xiàn)出多樣化的特點。國務(wù)院2011年2月24日發(fā)布關(guān)于全民健身計劃的通知,對國民健身發(fā)展提出了目標任務(wù),更是刺激了健身行業(yè)的發(fā)展。目前我國18到50歲之間對相關(guān)服務(wù)有需求的消費者人數(shù)已超過4億,已成為世界上最大的商業(yè)健身休閑市場[1]。然而,健身行業(yè)主要還是以傳統(tǒng)健身房為主,健身房會員和私教課程的價格比較高。而相對于傳統(tǒng)健身房,我們可以根據(jù)本系統(tǒng)分析不同地域用戶的運動習(xí)慣,配置對應(yīng)的運動設(shè)備,控制用戶與健身房的距離,最大化降低運營成本,迎合普通人群的消費能力,實現(xiàn)全民健身。
另一方面,隨著移動互聯(lián)網(wǎng)的高速發(fā)展及移動智能終端的普及,互聯(lián)網(wǎng)所產(chǎn)生的數(shù)據(jù)量呈現(xiàn)指數(shù)增長,使得包括健身行業(yè)在內(nèi)的移動電子商務(wù)具有巨大的發(fā)展?jié)摿2]。目前每日用戶運動產(chǎn)生TB級甚至PB級的運動數(shù)據(jù),采集到用戶的運動數(shù)據(jù)后,如何這些海量數(shù)據(jù)中挖取出有用的信息,越來越具有重大的實際意義[3]。本文針對用戶運動產(chǎn)生的海量數(shù)據(jù),搭建一個基于Hadoop及其相關(guān)組件的分布式系統(tǒng),用于從中提取出我們所需要的信息,進行用戶行為習(xí)慣分析。
2 系統(tǒng)架構(gòu)設(shè)計
本系統(tǒng)通過Hadoop集群實現(xiàn)海量運動數(shù)據(jù)的存儲和分析,構(gòu)建用戶運動數(shù)據(jù)端到端的大數(shù)據(jù)挖掘系統(tǒng),實現(xiàn)用戶的運動行為分析,提供運動推薦服務(wù),實現(xiàn)從海量運動數(shù)據(jù)采集、分析、推薦運動服務(wù)的完整流程,包括了從用戶運動數(shù)據(jù)采集、運動數(shù)據(jù)分析和運動數(shù)據(jù)管理三大組件,如下圖所示:
系統(tǒng)各個運動組件分別采用了當前主流的系統(tǒng)框架。我們通過手機移動端APP和特殊健身器械獲取數(shù)據(jù),在接口層采用SpringMVC+Hibernate主流框架,將基本數(shù)據(jù)存入MySQL,于每日凌晨1:00用戶活躍度較低時,啟用crontab定時任務(wù),利用Sqoop開源工具將MySQL中基礎(chǔ)數(shù)據(jù)表導(dǎo)入Hive,完成對基礎(chǔ)運動數(shù)據(jù)表的統(tǒng)計分析,再將分析結(jié)果返回給MySQL數(shù)據(jù)庫,用于前端展現(xiàn)或APP頁面查詢。
3 用戶運動數(shù)據(jù)采集組件
用戶運動數(shù)據(jù)采集組件是我們基礎(chǔ)數(shù)據(jù)的唯一來源,包括了兩個信息采集途徑,一個是利用特殊健身器械獲取用戶運動數(shù)據(jù),另一個是通過手機移動端APP。主要采集信息有用戶跑步步數(shù)、所在地理位置、跑步里程、運動時間等。
4 運動數(shù)據(jù)分析組件
Hadoop作為目前最為流行的處理大數(shù)據(jù)的軟件平臺,包含了HDFS和MapReduce兩大核心技術(shù),其中HDFS提供了海量數(shù)據(jù)的存儲,MapReduce提供了對數(shù)據(jù)的計算。Hive作為Hadoop的重要組件之一,是分布式的關(guān)系型數(shù)據(jù)庫,主要用來并行分布式處理海量數(shù)據(jù)。Hive中的所有查詢除了"select ",底層都是需要通過MapReduce的方式來執(zhí)行的。Sqoop是Apache的頂級項目之一,主要用來在Hadoop和關(guān)系數(shù)據(jù)庫(MySQL等)中相互傳遞數(shù)據(jù)。通過Sqoop,我們可以方便的將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫導(dǎo)入到HDFS或Hive,或?qū)?shù)據(jù)從HDFS或Hive導(dǎo)出到關(guān)系數(shù)據(jù)庫。
本組件主要對采集的運動信息進行分析,從中提出我們所需要的有用信息,用以作為用戶行為習(xí)慣分析的依據(jù)。比如我們可以根據(jù)用戶每日運動的時間,找出用戶的生活規(guī)律;根據(jù)用戶的跑步或散步時間分布,深度挖掘用戶的性格偏向;對用戶的經(jīng)緯度軌跡分析,可得出用戶與好友之間的社交關(guān)系等等。
本系統(tǒng)采用的思路是將采集的數(shù)據(jù)首先存入MySQL數(shù)據(jù)庫。但為了減少了線上mysql數(shù)據(jù)庫的負擔。每天凌晨1點跑一個定時任務(wù),利用Sqoop將基礎(chǔ)數(shù)據(jù)一次性導(dǎo)入Hive,利用Hadoop的分布式技術(shù)框架分析這些數(shù)據(jù),將統(tǒng)計結(jié)果存入Hive表中,最后把最終的今天這一天的推薦結(jié)果數(shù)據(jù)放入MySQL數(shù)據(jù)庫表中,用于Web頁面展示和APP顯示。以用戶每日運動里程為例進行分析如下。
5 運動數(shù)據(jù)管理組件
運動數(shù)據(jù)管理組件是采用目前主流框架SpringMVC+Hibernate設(shè)計的CMS系統(tǒng),方便管理MySQL數(shù)據(jù)庫中用戶運動信息。分為以下幾大功能模塊:登錄注冊模塊、個人中心模塊、運動模塊、挑戰(zhàn)模以及排行榜模塊。
1)登錄注冊模塊和個人中心模塊主要用于用戶登錄或注冊賬號,管理自己的個人信息,可用于增加、修改、刪除部分信息。用戶群體包括有系統(tǒng)管理員、普通用戶、健身教練等,其中不同用戶對應(yīng)的系統(tǒng)權(quán)限都有所不同。
2) 運動模塊和排行榜模塊主要用于記錄管理普通用戶的歷史運動信息以及相關(guān)統(tǒng)計信息,比如用戶運動排名、總運動里程等。普通用戶僅有查看記錄的權(quán)限。
3)用戶挑戰(zhàn)模塊管理用戶參加的挑戰(zhàn),其中挑戰(zhàn)運動主要由系統(tǒng)根據(jù)分析用戶運動數(shù)據(jù)建立的不同規(guī)則的運動。
6 結(jié)束語
本文基于改變目前國民運動熱情和運動持續(xù)性較弱這一現(xiàn)實狀況,提出了一種基于Hadoop集群的用戶運動推薦系統(tǒng)。針對移動互聯(lián)網(wǎng)大數(shù)據(jù)時代的海量運動數(shù)據(jù),我們結(jié)合了Hadoop集群實現(xiàn)海量運動數(shù)據(jù)的存儲和分析,有效應(yīng)對移動互聯(lián)網(wǎng)時代的新業(yè)務(wù)需求,能夠在有效的時間內(nèi)完成對海量用戶運動數(shù)據(jù)的處理和分析任務(wù),為用戶量身定做能刺激用戶運動熱情的運動模式,力爭早日實現(xiàn)全民健身。
參考文獻:
[1] 鐘秉樞. 全民健身國家戰(zhàn)略的提出與體育休閑健身產(chǎn)業(yè)的發(fā)展[J]. 體育科學(xué),2015(11):19-23.
[2] 平杰.基于物聯(lián)網(wǎng)的科學(xué)健身指導(dǎo)模型的構(gòu)建與驗證[J]. 計算機工程,2015(6):16-19.
[3] 孟小峰.大數(shù)據(jù)管理: 概念, 技術(shù)與挑戰(zhàn)[J]. 計算機研究與發(fā)展,2015(8).