大數(shù)據(jù)處理詳細(xì)設(shè)計(jì)(共8頁)_第1頁
大數(shù)據(jù)處理詳細(xì)設(shè)計(jì)(共8頁)_第2頁
大數(shù)據(jù)處理詳細(xì)設(shè)計(jì)(共8頁)_第3頁
大數(shù)據(jù)處理詳細(xì)設(shè)計(jì)(共8頁)_第4頁
大數(shù)據(jù)處理詳細(xì)設(shè)計(jì)(共8頁)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上目錄1.引言1.1背景與目的當(dāng)下互聯(lián)網(wǎng)和計(jì)算機(jī)技術(shù)越來越多的被各行各業(yè)利用,于是產(chǎn)生了海量的數(shù)據(jù)。進(jìn)入2012年后,“大數(shù)據(jù)”一詞越來越多的被提及,人們用它來描述和定義信息爆照時(shí)代產(chǎn)生的海量數(shù)據(jù)。顯而易見地,數(shù)據(jù)正在迅速膨脹并變大,它決定著企業(yè)的未來發(fā)展,雖然現(xiàn)在企業(yè)可能還沒有意識(shí)到,但隨著時(shí)間的推移,人們將越來越多的意識(shí)到數(shù)據(jù)對(duì)企業(yè)的重要性。而這就需要有一種框架來分析處理這種大數(shù)據(jù)。對(duì)于電力行業(yè)更是如此,電力方面每時(shí)每刻都在產(chǎn)生著大量的數(shù)據(jù),而對(duì)這些數(shù)據(jù)的分析和利用有著巨大的市場(chǎng)前景和意義。1.2專業(yè)術(shù)語及說明Hadoop :一種分布式基礎(chǔ)架構(gòu),由Apache基金會(huì)

2、開發(fā)。用戶可以在不了解分布是底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力運(yùn)算和存儲(chǔ)。Hadoop實(shí)現(xiàn)了一個(gè)分布式系統(tǒng)(Hadoop Distributed File System),簡(jiǎn)稱HDFS。HDFS有著高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(high throughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。Hbase:是一個(gè)分布式的、面

3、向列的開源數(shù)據(jù)庫。Mapreduce:是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1T)的并行運(yùn)算。當(dāng)前的軟件實(shí)現(xiàn)是指定一個(gè)Map函數(shù),用來把一組鍵值對(duì)映射成一組新的鍵值對(duì),指定并發(fā)的Reduce函數(shù),用來保證所有的映射的鍵值對(duì)中的每一個(gè)共享相同的鍵組。1.3參考資料【1】相海泉. 大數(shù)據(jù)時(shí)代J. 中國(guó)信息界, 2013 (5).【2】李成華, 張新訪, 金海, 等. MapReduce: 新型的分布式并行計(jì)算編程模型J. 計(jì)算機(jī)工程與科學(xué), 2011, 33(003): 129-135.【3】謝桂蘭, 羅省賢. 基于 HadoopMapReduce 模型的應(yīng)用研究 JJ. 微型機(jī)與應(yīng)用, 2010

4、, 25(3): 4-7.【4】陳勇. 基于 Hadoop 平臺(tái)的通信數(shù)據(jù)分布式查詢算法的設(shè)計(jì)與實(shí)現(xiàn) DD. 北京: 北京交通大學(xué), 2009.【5】Taylor R C. An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformaticsJ. BMC bioinformatics, 2010, 11(Suppl 12): S1.2. 設(shè)計(jì)概述從HBASE中取數(shù)據(jù)(driver 類)>通過MapReduce對(duì)數(shù)據(jù)進(jìn)行第一次處理(Mapper 類)>根據(jù)應(yīng)

5、用層的需要,對(duì)處理過的數(shù)據(jù)再次進(jìn)行處理(Reducer類以及附加類:簡(jiǎn)單的數(shù)學(xué)基本函數(shù)、統(tǒng)計(jì)、概率等),并且返回給客戶端(預(yù)留接口)2.1任務(wù)及目標(biāo)數(shù)據(jù)合成:1、 PI的常用函數(shù):最大值、平均值等2、 專業(yè)函數(shù)(與PI服務(wù)器類似的內(nèi)置函數(shù))數(shù)據(jù)訂單:1、 基本的數(shù)據(jù)挖掘、數(shù)理統(tǒng)計(jì)函數(shù)功能(如統(tǒng)計(jì)/概率)2.2需求概述因?yàn)殡娏π袠I(yè)在實(shí)際生產(chǎn)和應(yīng)用的過程中會(huì)產(chǎn)生大量的數(shù)據(jù),而這些數(shù)據(jù)又對(duì)電力有著巨大的影響和意義。對(duì)這些數(shù)據(jù)的處理和存儲(chǔ)就成為一個(gè)迫在眉睫的問題。從這些數(shù)據(jù)中可以提取很多對(duì)于電力行業(yè)以后的發(fā)展和現(xiàn)今的實(shí)際生產(chǎn)有著指導(dǎo)意義的數(shù)據(jù),利用好這些海量的數(shù)據(jù)則成為如今電力的一個(gè)極具戰(zhàn)略意義的問題

6、。但是,如今的PI服務(wù)器不但不能滿足于這個(gè)需求而且成本較高,所以就有替代的必要。2.3運(yùn)行環(huán)境概述20個(gè)計(jì)算節(jié)點(diǎn)的Hadoop集群(可橫向擴(kuò)展),集群配置為 2*4核CPU,4080G內(nèi)存,612T存儲(chǔ)。2.4詳細(xì)設(shè)計(jì)方法和工具利用Map函數(shù)從Hbase中取數(shù)據(jù),Reduce函數(shù)對(duì)取到的數(shù)據(jù)進(jìn)行處理,返回結(jié)果給用戶。如下圖編程工具:eclipse編程語言:java3.系統(tǒng)詳細(xì)需求分析3.1詳細(xì)需求分析A功能需求分析:批量查詢功能,數(shù)據(jù)處理功能(專業(yè)數(shù)學(xué)函數(shù),基本計(jì)算函數(shù),統(tǒng)計(jì)等)B性能需求分析:實(shí)時(shí)性要求較高,對(duì)于數(shù)據(jù)的處理計(jì)算Mapreduce完全能夠勝任C資源需求分析:多臺(tái)普通X86服務(wù)器

7、,成本較低。D系統(tǒng)運(yùn)行環(huán)境及限制條件分析:系統(tǒng)需要在Linux系統(tǒng)上面運(yùn)行,搭建hadoop集群框架E現(xiàn)有軟、硬件資源分析:如今華電現(xiàn)有X86服務(wù)器4臺(tái),可以利用虛擬技術(shù)對(duì)hadoop集群進(jìn)行布置。軟件方面目前hadoop框架已搭建成功,可以直接使用。4.總體設(shè)計(jì)方案4.1系統(tǒng)總體結(jié)構(gòu)如下圖為hadoop、hbase、hadoop mapreduce的層次結(jié)構(gòu) MapReduce分為三個(gè)類:Driver類、Mapper類、Reducer類輸入的參數(shù)類型是String類(測(cè)點(diǎn)名+時(shí)間段+(query內(nèi)容),解析之后,通過Map Function按照檢索條件最后輸出List(Hashtable)類

8、型結(jié)果;經(jīng)過Map Function之后的結(jié)果,然后在Reducer類里通過調(diào)用附加類的函數(shù)進(jìn)行運(yùn)算,最后輸出結(jié)果List(Value)。如下圖 Map FunctionArrayList<Key:SessionID,Value:Search MediateResults> Reduce FunctionArrayList(SearchResultsw)。用戶4.2系統(tǒng)模塊劃分1)Map類:Map寫入檢索條件,遍歷數(shù)據(jù)庫HBASE,得到需要的數(shù)據(jù)(可以提供的API按時(shí)間檢索,按點(diǎn)名檢索等)。需要參數(shù)為Hashtable類型(hashtable<Key:ID,Value:Use

9、rQuery>)進(jìn)過Map函數(shù)之后輸出數(shù)據(jù)為ArrayList<Key:SessionID,Value:Search MediateResults>。2)Reduce類:Reduce函數(shù)得到Map的返回結(jié)果即ArrayList類型的數(shù)據(jù)之后經(jīng)過運(yùn)算處理返回給User的數(shù)據(jù)為ArrayList(SearchResultsw)。3)基礎(chǔ)類:封裝的函數(shù):加減乘除等基本運(yùn)算、統(tǒng)計(jì)count、計(jì)算概率、解析字符串、專業(yè)函數(shù)等。4) Driver類:使用JobConf和JobClient提交作業(yè);與Map類和Reduce類關(guān)聯(lián)。5.系統(tǒng)詳細(xì)設(shè)計(jì)5.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)系統(tǒng)分為兩個(gè)java包:一

10、個(gè)是批量查詢的包(querydatatable),一個(gè)是批量計(jì)算的包(datamath)。在querydatatable包內(nèi),有四個(gè)類:DriverQuery類、QueryMap類、StringAnalytical類、TxtHBase類。在datamath包內(nèi),有多個(gè)類:MathDriver類、MathMap類、MathSum類、MathCount類、MathDataAppend類等,這個(gè)包內(nèi)需要封裝一些類似PI服務(wù)器里的函數(shù),如下表所示:PIMapReduce三角函數(shù)三角函數(shù)(sin、cos、tan)Log、lgLog、lg平方根Sqr、方差平方根Sqr、方差A(yù)vg、max、min、tota

11、l(sum)Avg、max、min、total(sum)絕對(duì)值abs、近似值(round)絕對(duì)值abs、近似值(round)加減乘除加減乘除統(tǒng)計(jì)統(tǒng)計(jì)專業(yè)函數(shù)(水汽、功率)專業(yè)函數(shù)(水汽、功率)字符串解析(.)字符串解析(.)時(shí)間轉(zhuǎn)化(時(shí)間戳)時(shí)間轉(zhuǎn)化(時(shí)間戳)錯(cuò)誤處理錯(cuò)誤處理好點(diǎn)、壞點(diǎn)處理好點(diǎn)、壞點(diǎn)處理55.2系統(tǒng)功能模塊詳細(xì)設(shè)計(jì)總體功能分為兩個(gè)部分:數(shù)據(jù)訂單,數(shù)據(jù)合成。A. 數(shù)據(jù)訂單即批量查詢功能編寫字符串解析類,解析HBase的RowKey。然后編寫Mapper類,這個(gè)類繼承自MapReduceBase,重寫這里面的接口函數(shù)Mapper,將檢索條件寫入Mapper類。然后通過Driver類

12、調(diào)用JobConf和JobClient提交作業(yè)。B. 數(shù)據(jù)合成即根據(jù)上次應(yīng)用的需求對(duì)查詢后的數(shù)據(jù)進(jìn)行處理計(jì)算。查詢后的數(shù)據(jù)傳遞給Reducer類,在Reducer類里進(jìn)行處理,這里需要封裝多個(gè)Reducer類,根據(jù)上面列表內(nèi)的函數(shù)依次封裝,用戶Reducer類需要繼承MapReduceBase類及實(shí)現(xiàn)Reducer接口函數(shù),注意的一點(diǎn)是這個(gè)里面的輸入Key及Value要與Mapper的輸出key及Value類型相同。另外因?yàn)橛须娏Ψ矫鎸I(yè)函數(shù)的存在,需要編寫一個(gè)附加類來提供這些計(jì)算方法,以便于在用戶Reducer類里面調(diào)用。以上的核心邏輯處理完之后,用output.collect方法來輸出最終

13、的結(jié)果。最后還是使用JobConf及JobClient來提交作業(yè)。6.信息編碼設(shè)計(jì)6.1代碼結(jié)構(gòu)設(shè)計(jì)源代碼分為兩個(gè)包,每個(gè)包內(nèi)有不同的java類。Source文件下需要導(dǎo)入hadoop框架的四個(gè).xml文件分別為:core-site.xml、hbase-site.xml、hdfs-site.xml、mapred-site.xml。還有需要有hadoop的jar包支持。MapReduce框架結(jié)構(gòu)主要是分為3個(gè)類:Driver類、Map類、Reduce類Driver類代碼結(jié)構(gòu)為:首先創(chuàng)建JobConf對(duì)象conf,設(shè)置conf的配置,關(guān)聯(lián)Map類、Reducer類及其他類。然后調(diào)用JobClien

14、t的靜態(tài)方法runJob方法啟動(dòng)M/R程序。Map類代碼結(jié)構(gòu)為:這個(gè)用戶類要求繼承自MapReduceBase并且實(shí)現(xiàn)Mapper接口,然后根據(jù)檢索條件遍歷HBase中的內(nèi)容,得到所需要的內(nèi)容,并且或輸出或傳遞給Reducer用戶類。Reducer類代碼結(jié)構(gòu)為:這個(gè)用戶類要求繼承自MapReduceBase并且實(shí)現(xiàn)Reducer接口,然后通過調(diào)用附加類中的函數(shù)運(yùn)算或者根據(jù)要求,對(duì)Mapper之后的數(shù)據(jù)經(jīng)行處理,并且利用output.collect方法輸出最終的結(jié)果。附加類代碼結(jié)構(gòu):根據(jù)表中所列的函數(shù)及其他需求,編寫封裝函數(shù)。6.2代碼命名規(guī)則盡量使用英文直譯之后名稱來定義,首字母大寫。7.維護(hù)

15、設(shè)計(jì)7.1系統(tǒng)的可靠性和安全性后期設(shè)計(jì)中會(huì)加入控制臺(tái)設(shè)計(jì),權(quán)限設(shè)計(jì)以及針對(duì)用戶的特殊設(shè)計(jì)。7.2系統(tǒng)及用戶維護(hù)設(shè)計(jì)利用hadoop框架提供的維護(hù)可以實(shí)現(xiàn)這一功能。7.3系統(tǒng)擴(kuò)充設(shè)計(jì)因?yàn)閔adoop框架是支持橫向擴(kuò)展的,所以存儲(chǔ)量這方面不用擔(dān)心。在功能方面可以預(yù)留接口以方便以后的功能性擴(kuò)展。8.系統(tǒng)配置8.1硬件配置開發(fā):可以在虛擬機(jī)下開發(fā),需要五臺(tái)虛擬機(jī)搭建hadoop集群(測(cè)試使用)。運(yùn)行:多臺(tái)普通的X86服務(wù)器。(實(shí)體的hadoop集群)8.2軟件配置開發(fā)環(huán)境:eclipse、java1.6、hadoop框架、HBase、win7 64位操作系統(tǒng)運(yùn)行環(huán)境:zookeeper、HBase、H

16、adoop、Linux64位操作系統(tǒng)9.關(guān)鍵技術(shù)9.1關(guān)鍵技術(shù)的一般說明Map/Reduce是一個(gè)用于大規(guī)模數(shù)據(jù)處理的分布式計(jì)算編程模型,用戶定義一個(gè)map函數(shù)來處理一個(gè)Key/Value對(duì)以生成一批中間的key/value對(duì),在定義一個(gè)reduce函數(shù)將所有的這些中間的有著相同的key的values合并起來。而基于hadoop的MapReduce也是如此。9.2關(guān)鍵技術(shù)的實(shí)現(xiàn)方案運(yùn)行于Hadoop的MapReduce應(yīng)用程序最基本的組成部分包括一個(gè)Mapper和一個(gè)Reducer類,以及一個(gè)創(chuàng)建JobConf的執(zhí)行程序,在一些應(yīng)用中還可以包括一個(gè)Combiner類。MapReduce框架是由一個(gè)單獨(dú)的JobTracker(master)和很多歌TaskTracker(slave)集群節(jié)點(diǎn)的一個(gè)共同組成。在MapReduce客戶端的代碼需要指明輸入/輸出的位置(文件路徑/DB/NOSQL/HBASE),客戶端再加上作業(yè)的參數(shù),就構(gòu)成了作業(yè)配置(job configuration),客戶端代碼需要定義map和reduce方法通過實(shí)現(xiàn)合適的抽象類,并在實(shí)現(xiàn)的方法中編寫業(yè)務(wù)邏輯,在客戶端還要定義Map/Reduce的輸入和輸出類型,當(dāng)Hadoophe job cli

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論