一種基于Hadoop的用戶服務(wù)安全系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于Hadoop的用戶服務(wù)安全系統(tǒng)和方法,屬于計(jì)算機(jī)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]在以往的環(huán)境中,人們對(duì)于天氣和疾病之間的關(guān)系只是有一個(gè)模糊的聯(lián)系,專門的由天氣預(yù)測(cè)疾病的系統(tǒng)更是少之又少。從有氣象監(jiān)測(cè)以來,每天的不同位置就會(huì)產(chǎn)生天氣信息,比如:常見的溫度、降雨量、風(fēng)力、相對(duì)濕度、光照等信息,每天醫(yī)院都會(huì)產(chǎn)生治療常見疾病的人數(shù)、比如:常見的偏頭痛、哮喘病、心肌梗塞、風(fēng)濕病痛等。這些大數(shù)據(jù)閑置不用,則是對(duì)資源的一種浪費(fèi),隨著大數(shù)據(jù)技術(shù)的發(fā)展,如何找出這些海量數(shù)據(jù)中的關(guān)聯(lián)性,即:天氣與疾病的關(guān)聯(lián)性,由天氣信息預(yù)測(cè)用戶可能產(chǎn)生的疾病,則是一個(gè)迫切需要解決的問題,而本發(fā)明能夠很好地解決上面的問題。
【發(fā)明內(nèi)容】
[0003]本發(fā)明目的在于解決了上述現(xiàn)有技術(shù)的問題,提出了一種基于Hadoop的用戶服務(wù)安全系統(tǒng),該系統(tǒng)能夠根據(jù)當(dāng)前測(cè)量的天氣數(shù)據(jù)預(yù)測(cè)給出用戶可能生成的疾病。
[0004]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種基于Hadoop的用戶服務(wù)安全系統(tǒng),該系統(tǒng)包括智能采集節(jié)點(diǎn),用戶展示平臺(tái),Hadoop大數(shù)據(jù)處理平臺(tái)。
[0005]本發(fā)明所述的智能采集節(jié)點(diǎn)包括:主要采集經(jīng)度、維度、海拔、溫度、降雨量、風(fēng)力、相對(duì)濕度、光照。用戶利用智能終端測(cè)量關(guān)鍵生理指標(biāo),并將數(shù)據(jù)存儲(chǔ)HDFS中。
[0006]本發(fā)明所述的用戶展示平臺(tái)包括:采用Spring MVC框架,提供簡潔明了的人機(jī)界面,方便用戶查看當(dāng)前智能節(jié)點(diǎn)采集的天氣信息,以及查看由此天氣信息得出的當(dāng)前需要注意防范的疾病。
[0007]本發(fā)明所述的Hadoop大數(shù)據(jù)處理平臺(tái)包括:負(fù)責(zé)存儲(chǔ)上傳的數(shù)據(jù),并對(duì)存儲(chǔ)其中的數(shù)據(jù)進(jìn)行挖掘,反饋數(shù)據(jù)挖掘出來的結(jié)果。
[0008]本發(fā)明所述系統(tǒng)的具體模塊包括:個(gè)人基本健康信息管理模塊、數(shù)據(jù)挖掘模塊、分布式存儲(chǔ)模塊、挖掘結(jié)果展示模塊。
[0009]本發(fā)明所述的個(gè)人基本健康信息管理模塊的功能包括:主要有用戶姓名、性別、年齡、出生日期、職業(yè)、用戶當(dāng)前所處位置等,并且當(dāng)用戶首次注冊(cè)系統(tǒng)會(huì)為其分配唯一標(biāo)識(shí)的用戶ID。這些數(shù)據(jù)主要由用戶注冊(cè)的時(shí)候填寫,并可以隨時(shí)修改。用戶可以在基本健康信息管理模塊里面查看過往系統(tǒng)根據(jù)天氣信息提出的需要注意防范的疾病。
[0010]本發(fā)明所述的數(shù)據(jù)挖掘模塊的功能包括:采用適用于Hadoop平臺(tái)的Apr1ri算法,挖掘出天氣信息與疾病之間的關(guān)聯(lián)關(guān)系。
[0011]本發(fā)明所述的分布式存儲(chǔ)模塊的功能包括:米用Hadoop的核心子項(xiàng)目之一的HDFS(即:Hadoop Distributed File System),HDFS具有處理超大文件、流式的訪問數(shù)據(jù)、計(jì)算本地化、運(yùn)用于廉價(jià)的商用集群等功能。
[0012]本發(fā)明所述的挖掘結(jié)果展示模塊的功能包括:采用基于MVC設(shè)計(jì)模式的SpringMVC的框架設(shè)計(jì)系統(tǒng)的三層結(jié)構(gòu)。除了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫,還引入了 HBase,在該模塊的數(shù)據(jù)訪問層中封裝了對(duì)HBase的操作。
[0013]本發(fā)明還提供一種基于Hadoop的用戶服務(wù)安全系統(tǒng)的實(shí)現(xiàn)方法,該方法包括如下步驟:
[0014]步驟1:用戶通過用戶展示平臺(tái),登錄系統(tǒng)。
[0015]步驟2:系統(tǒng)根據(jù)用戶個(gè)人基本健康信息管理模塊中的位置信息上傳當(dāng)前位置處的智能節(jié)點(diǎn)所采集到的天氣信息。
[0016]步驟3:將上傳的天氣信息儲(chǔ)存在HDFS中,并以HBase進(jìn)行組織和管理。
[0017]步驟4:將存儲(chǔ)于HDFS中的天氣信息數(shù)據(jù)進(jìn)行原始清理,得到數(shù)據(jù)挖掘部分需要的數(shù)據(jù)。
[0018]步驟5:將需要數(shù)據(jù)挖掘部分的數(shù)據(jù)與存儲(chǔ)于HDFS中的相關(guān)疾病發(fā)病情況進(jìn)行關(guān)聯(lián)分析,找出它們之間的關(guān)聯(lián)特性。
[0019]步驟6:根據(jù)數(shù)據(jù)挖掘算法找出的天氣與疾病之間的強(qiáng)關(guān)聯(lián)特性,由當(dāng)前位置上當(dāng)天的天氣信息,給出需要注意防范的疾病信息。
[0020]步驟7:將需要防范的疾病信息展示在用戶展示平臺(tái),供用戶查看。
[0021]本發(fā)明上述步驟2的天氣信息包括:溫度、降雨量、風(fēng)力、相對(duì)濕度、光照信息。
[0022]本發(fā)明所述方法應(yīng)用于為用戶提供健康數(shù)據(jù)的分析服務(wù),方便用戶進(jìn)行疾病防范。
[0023]有益效果:
[0024]1、本發(fā)明的用戶登錄后,上傳用戶位置處智能節(jié)點(diǎn)采集的天氣數(shù)據(jù),數(shù)據(jù)準(zhǔn)確。
[0025]2、本發(fā)明采用Hadoop大數(shù)據(jù)處理平臺(tái),能夠?qū)?shù)據(jù)存儲(chǔ)于多個(gè)節(jié)點(diǎn)之上。
[0026]3、本發(fā)明將采集到的天氣數(shù)據(jù)與歷史采集的天氣數(shù)據(jù)一起,與每天的疾病發(fā)病率之間采用改進(jìn)的Apr1ri算法進(jìn)行關(guān)聯(lián)規(guī)則挖掘,并將結(jié)果展示給用戶。
【附圖說明】
[0027]圖1為本發(fā)明的系統(tǒng)的功能架構(gòu)圖。
[0028]圖2為本發(fā)明的Hadoop大數(shù)據(jù)處理的工作流程圖。
[0029]圖3為本發(fā)明的方法流程圖。
【具體實(shí)施方式】
[0030]下面結(jié)合說明書附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。
[0031]如圖1和圖2所示,本發(fā)明提供了一種基于Hadoop的用戶服務(wù)安全系統(tǒng),該系統(tǒng)包括:個(gè)人基本健康信息管理模塊、數(shù)據(jù)挖掘模塊、分布式存儲(chǔ)模塊、挖掘結(jié)果展示模塊,其核心在于數(shù)據(jù)挖掘模塊和分布式存儲(chǔ)模塊。系統(tǒng)收到請(qǐng)求后,開始啟動(dòng)MapReduce進(jìn)行分布式處理。MapReduce需要從HDFS中獲取任務(wù)所需的資源(即:輸入劃分、配置信息、jar包等)。然后進(jìn)行本地計(jì)算,即在數(shù)據(jù)所在的Block執(zhí)行map任務(wù)。然后對(duì)map的輸出數(shù)據(jù)進(jìn)行reduce任務(wù),并且將最終的結(jié)果存入HBase。本系統(tǒng)然后從HBase中查找自己所需的數(shù)據(jù),并經(jīng)過網(wǎng)頁渲染呈現(xiàn)給用戶。
[0032]個(gè)人基本健康信息管理模塊包括個(gè)人用戶的基本信息以及用戶位置信息。個(gè)人基本信息包括用戶名稱、性別、年齡、出生日期、職業(yè)等。并且當(dāng)用戶首次注冊(cè)的時(shí)候系統(tǒng)會(huì)為其分配一個(gè)唯一的標(biāo)識(shí)用戶的ID。這些數(shù)據(jù)主要由用戶注冊(cè)的時(shí)候填寫,并可以隨時(shí)修改。在該模塊,系統(tǒng)會(huì)根據(jù)用戶所處的位置信息,上傳出于該位置的智能采集節(jié)點(diǎn)所采集到的信息到Hadoop大數(shù)據(jù)處理平臺(tái),系統(tǒng)在處理這些數(shù)據(jù)時(shí)候首先會(huì)檢查數(shù)據(jù)的完整性,若不完整則會(huì)要求用戶進(jìn)行補(bǔ)充。這些基本健康信息除了可以為用戶直觀的顯示其自身的各種信息,同時(shí)能為健康數(shù)據(jù)分析提供大量的真實(shí)數(shù)據(jù)。在進(jìn)行數(shù)據(jù)挖掘分析后為用戶提供健康安全服務(wù)。
[0033]數(shù)據(jù)挖掘模塊是本系統(tǒng)的核心模塊,該系統(tǒng)要為大量用戶提供健康服務(wù),同時(shí)每個(gè)用戶每天也會(huì)產(chǎn)生大量數(shù)據(jù)量,所以調(diào)用Hadoop平臺(tái)進(jìn)行數(shù)據(jù)挖掘,加快數(shù)據(jù)的處理速度。本系統(tǒng)主要以數(shù)據(jù)關(guān)聯(lián)分析為主。對(duì)當(dāng)前位置上的過往每天最大溫度、最小溫度、降雨量、風(fēng)力、相對(duì)濕度、光照、偏頭痛發(fā)病率、哮喘病發(fā)病率、心肌梗塞發(fā)病率、風(fēng)濕病痛發(fā)病率等信息進(jìn)行關(guān)聯(lián)分析,找到其中的強(qiáng)關(guān)聯(lián)規(guī)則,從而發(fā)現(xiàn)不同位置上不同天氣情況下不同疾病的發(fā)病情況。從而根據(jù)當(dāng)前測(cè)量的天氣信息,給出防范疾病的建議。本系統(tǒng)在進(jìn)行關(guān)聯(lián)挖掘時(shí),采用基于MapReduce改進(jìn)后的Apr1ri算法。其基本思想是利用MapReduce模式自動(dòng)分隔大數(shù)據(jù)的特點(diǎn),將事務(wù)數(shù)據(jù)庫這樣的大數(shù)據(jù)切割成效的數(shù)據(jù)塊分發(fā)給各個(gè)節(jié)點(diǎn),作為節(jié)點(diǎn)的map輸入。每個(gè)map的輸出結(jié)果構(gòu)成某一項(xiàng)集的局部支持度,作為reduce端的輸入。由reduce進(jìn)行匯總生成該項(xiàng)集的全局支持度,并與本發(fā)明所設(shè)定的最小支持度進(jìn)行對(duì)比找出頻繁項(xiàng)集。對(duì)于候選集生成時(shí)的繁瑣以及冗余,本發(fā)明需要對(duì)事務(wù)的存儲(chǔ)格式進(jìn)行一定的轉(zhuǎn)換。本發(fā)明的系統(tǒng)使用布爾矩陣,可以將候選集支持度的計(jì)算簡化為向量的運(yùn)算。對(duì)布爾矩陣的行向量進(jìn)行“與”運(yùn)算后相加得到每個(gè)候選項(xiàng)集的局部支持度。如果結(jié)果為O則代表肯定不是頻繁項(xiàng)集,則可以直接去除。其具體流程如下:
[0034]步驟1:首先將事務(wù)數(shù)據(jù)庫D切割成N個(gè)子集。切割的數(shù)量由HDFS中的Block大小所決定,并由MapReduce模式自行切割。有N個(gè)數(shù)據(jù)塊便會(huì)啟動(dòng)N個(gè)map任務(wù),這些任務(wù)分散R個(gè)節(jié)點(diǎn)上,遵循數(shù)據(jù)本地化的原則。
[0035]步驟2:在進(jìn)行map任務(wù)處理前,需要將數(shù)據(jù)存儲(chǔ)格式進(jìn)行矩陣轉(zhuǎn)化,成為布爾矩陣。
[0036]步驟3:以〈key,value)對(duì)作為map的輸入,這里的輸入格式本發(fā)明采用默認(rèn)的TextInputFormatJP key為每個(gè)數(shù)據(jù)的記錄在分片中的字節(jié)偏移,value的值是每行的內(nèi)容。本發(fā)明對(duì)value中的內(nèi)容進(jìn)行操作,即依次找出其中的局部候選k-項(xiàng)集,作為map輸出的key值,value的值記作I。Map的結(jié)果會(huì)進(jìn)行一個(gè)shuffle的過程,即將結(jié)果根據(jù)key值進(jìn)行字典排序以及合并。最終本發(fā)明得到一個(gè)〈key,liSt(l,l,l...)〉的形式。即每個(gè)子集基于自己那部分?jǐn)?shù)據(jù)所有項(xiàng)集的局部支持度。key是項(xiàng)