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