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

下載本文檔

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

文檔簡介

1、。目錄目錄 .11.引言 .21.1背景與目的 .21.2專業(yè)術(shù)語及說明 .21.3參考資料 .22.設(shè)計概述 . .32.1任務(wù)及目標 .32.2需求概述 .32.3運行環(huán)境概述 .33.系統(tǒng)詳細需求分析 . .43.1詳細需求分析 .44.總體設(shè)計方案 . .44.1系統(tǒng)總體結(jié)構(gòu) .44.2系統(tǒng)模塊劃分 .55.系統(tǒng)詳細設(shè)計 . .55.1系統(tǒng)結(jié)構(gòu)設(shè)計 .55.2系統(tǒng)功能模塊詳細設(shè)計 .66.信息編碼設(shè)計 . .66.1代碼結(jié)構(gòu)設(shè)計 .66.2代碼命名規(guī)則 .77.維護設(shè)計 .77.1系統(tǒng)的可靠性和安全性 .77.2系統(tǒng)及用戶維護設(shè)計 .77.3系統(tǒng)擴充設(shè)計 .78.系統(tǒng)配置 .78.1硬

2、件配置 .78.2軟件配置 .79.關(guān)鍵技術(shù) .89.1關(guān)鍵技術(shù)的一般說明 .89.2關(guān)鍵技術(shù)的實現(xiàn)方案 .810. 測試.810.1 測試方案 .8。1。1. 引言1.1 背景與目的當下互聯(lián)網(wǎng)和計算機技術(shù)越來越多的被各行各業(yè)利用,于是產(chǎn)生了海量的數(shù)據(jù)。進入 2012 年后,“大數(shù)據(jù)”一詞越來越多的被提及,人們用它來描述和定義信息爆照時代產(chǎn)生的海量數(shù)據(jù)。顯而易見地, 數(shù)據(jù)正在迅速膨脹并變大,它決定著企業(yè)的未來發(fā)展,雖然現(xiàn)在企業(yè)可能還沒有意識到, 但隨著時間的推移, 人們將越來越多的意識到數(shù)據(jù)對企業(yè)的重要性。而這就需要有一種框架來分析處理這種大數(shù)據(jù)。對于電力行業(yè)更是如此, 電力方面每時每刻都在產(chǎn)

3、生著大量的數(shù)據(jù),而對這些數(shù)據(jù)的分析和利用有著巨大的市場前景和意義。1.2 專業(yè)術(shù)語及說明Hadoop :一種分布式基礎(chǔ)架構(gòu),由 Apache 基金會開發(fā)。 用戶可以在不了解分布是底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力運算和存儲。Hadoop 實現(xiàn)了一個分布式系統(tǒng)( Hadoop DistributedFileSystem ),簡稱 HDFS。 HDFS有著高容錯性的特點,并且設(shè)計用來部署在低廉的( low-cost)硬件上。而且它提供高傳輸率(high throughput )來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。 HDFS放寬了

4、( relax )POSIX的要求( requirements )這樣可以流的形式訪問( streamingaccess )文件系統(tǒng)中的數(shù)據(jù)。Hbase:是一個分布式的、面向列的開源數(shù)據(jù)庫。Mapreduce:是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1T)的并行運算。當前的軟件實現(xiàn)是指定一個 Map 函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce函數(shù),用來保證所有的映射的鍵值對中的每一個共享相同的鍵組。1.3 參考資料【 1】相海泉 . 大數(shù)據(jù)時代 J. 中國信息界 , 2013 (5).【 2】李成華 , 張新訪 , 金海 , 等 . MapReduce: 新型的分布式并行

5、計算編程模型J.計算機工程與科學, 2011, 33(003): 129-135.【 3】謝桂蘭 , 羅省賢 . 基于 HadoopMapReduce 模型的應(yīng)用研究 JJ. 微型機與應(yīng)用, 2010, 25(3): 4-7.【 4】陳勇 .基于 Hadoop 平臺的通信數(shù)據(jù)分布式查詢算法的設(shè)計與實現(xiàn)DD.北京 :北京交通大學 , 2009.【 5】 Taylor R C. An overview of the Hadoop/MapReduce/HBase framework and itscurrentapplicationsin bioinformaticsJ.BMCbioinformat

6、ics,2010, 11(Suppl12):S1.。2。2. 設(shè)計概述從 HBASE中取數(shù)據(jù) ( driver類) 通過 MapReduce對數(shù)據(jù)進行第一次處理(Mapper類) 根據(jù)應(yīng)用層的需要,對處理過的數(shù)據(jù)再次進行處理(Reducer 類以及附加類:簡單的數(shù)學基本函數(shù)、統(tǒng)計、概率等),并且返回給客戶端(預(yù)留接口)2.1 任務(wù)及目標數(shù)據(jù)合成:1、 PI 的常用函數(shù):最大值、平均值等2、專業(yè)函數(shù)(與PI 服務(wù)器類似的內(nèi)置函數(shù))數(shù)據(jù)訂單:1、基本的數(shù)據(jù)挖掘、數(shù)理統(tǒng)計函數(shù)功能(如統(tǒng)計/ 概率)2.2 需求概述因為電力行業(yè)在實際生產(chǎn)和應(yīng)用的過程中會產(chǎn)生大量的數(shù)據(jù),而這些數(shù)據(jù)又對電力有著巨大的影響和

7、意義。對這些數(shù)據(jù)的處理和存儲就成為一個迫在眉睫的問題。從這些數(shù)據(jù)中可以提取很多對于電力行業(yè)以后的發(fā)展和現(xiàn)今的實際生產(chǎn)有著指導(dǎo)意義的數(shù)據(jù),利用好這些海量的數(shù)據(jù)則成為如今電力的一個極具戰(zhàn)略意義的問題。但是,如今的 PI 服務(wù)器不但不能滿足于這個需求而且成本較高,所以就有替代的必要。2.3 運行環(huán)境概述20 個計算節(jié)點的Hadoop 集群(可橫向擴展) ,集群配置為2*4 核 CPU,40 80G內(nèi)存,6 12T 存儲。2.4 詳細設(shè)計方法和工具利用 Map函數(shù)從 Hbase 中取數(shù)據(jù), Reduce 函數(shù)對取到的數(shù)據(jù)進行處理,返回結(jié)果給用戶。如下圖編程工具: eclipse編程語言: java。3

8、。3. 系統(tǒng)詳細需求分析3.1 詳細需求分析A 功能需求分析:批量查詢功能,數(shù)據(jù)處理功能(專業(yè)數(shù)學函數(shù),基本計算函數(shù),統(tǒng)計等)B 性能需求分析:實時性要求較高,對于數(shù)據(jù)的處理計算Mapreduce 完全能夠勝任C資源需求分析:多臺普通X86 服務(wù)器,成本較低。D 系統(tǒng)運行環(huán)境及限制條件分析:系統(tǒng)需要在Linux 系統(tǒng)上面運行,搭建hadoop 集群框架E 現(xiàn)有軟、 硬件資源分析: 如今華電現(xiàn)有X86 服務(wù)器 4 臺,可以利用虛擬技術(shù)對hadoop集群進行布置。軟件方面目前hadoop 框架已搭建成功,可以直接使用。4. 總體設(shè)計方案4.1 系統(tǒng)總體結(jié)構(gòu)如下圖為 hadoop、 hbase、 h

9、adoop mapreduce 的層次結(jié)構(gòu)MapReduce分為三個類: Driver類、 Mapper 類、 Reducer 類輸入的參數(shù)類型是String類(測點名 +時間段 +( query內(nèi)容),解析之后,通過MapFunction按照檢索條件最后輸出List ( Hashtable )類型結(jié)果;經(jīng)過Map Function之后的結(jié)果,然后在Reducer 類里通過調(diào)用附加類的函數(shù)進行運算,最后輸出結(jié)果List ( Value )。如下圖。4。Map FunctionArrayListReduce FunctionArrayList(SearchResultsw)。用戶4.2 系統(tǒng)模塊

10、劃分1) Map類:Map寫入檢索條件,遍歷數(shù)據(jù)庫HBASE,得到需要的數(shù)據(jù)(可以提供的API 按時間檢索,按點名檢索等) 。需要參數(shù)為Hashtable類型( hashtable)進過 Map 函數(shù)之后輸出數(shù)據(jù)為ArrayList。2) Reduce 類:Reduce 函數(shù)得到Map的返回結(jié)果即ArrayList類型的數(shù)據(jù)之后經(jīng)過運算處理返回給 User 的數(shù)據(jù)為 ArrayList(SearchResultsw)。3)基礎(chǔ)類:封裝的函數(shù):加減乘除等基本運算、統(tǒng)計count 、計算概率、解析字符串、專業(yè)函數(shù)等。4) Driver類:使用 JobConf 和 JobClient提交作業(yè);與Ma

11、p類和 Reduce 類關(guān)聯(lián)。5. 系統(tǒng)詳細設(shè)計5.1 系統(tǒng)結(jié)構(gòu)設(shè)計系統(tǒng)分為兩個java 包:一個是批量查詢的包(querydatatable),一個是批量計算的包( datamath )。5。在 querydatatable包內(nèi),有四個類: DriverQuery類、QueryMap類、StringAnalytical類、 TxtHBase 類。在 datamath 包內(nèi),有多個類:MathDriver 類、 MathMap 類、 MathSum類、 MathCount類、 MathDataAppend 類等,這個包內(nèi)需要封裝一些類似PI 服務(wù)器里的函數(shù),如下表所示:PIMapReduce三

12、角函數(shù)三角函數(shù)( sin 、cos 、 tan )Log、 lgLog、 lg平方根 Sqr 、方差平方根 Sqr 、方差A(yù)vg、 max、min 、 total( sum)Avg、 max、 min 、total (sum)絕對值 abs、近似值( round )絕對值 abs 、近似值( round )加減乘除加減乘除統(tǒng)計統(tǒng)計專業(yè)函數(shù)(水汽、功率)專業(yè)函數(shù)(水汽、功率)字符串解析 (.)字符串解析( . )時間轉(zhuǎn)化(時間戳)時間轉(zhuǎn)化(時間戳)錯誤處理錯誤處理好點、壞點處理好點、壞點處理55.2 系統(tǒng)功能模塊詳細設(shè)計總體功能分為兩個部分:數(shù)據(jù)訂單,數(shù)據(jù)合成。A. 數(shù)據(jù)訂單即批量查詢功能編寫字

13、符串解析類,解析HBase 的 RowKey。然后編寫Mapper 類,這個類繼承自MapReduceBase,重寫這里面的接口函數(shù)Mapper,將檢索條件寫入Mapper 類。然后通過 Driver 類調(diào)用 JobConf 和 JobClient 提交作業(yè)。B. 數(shù)據(jù)合成即根據(jù)上次應(yīng)用的需求對查詢后的數(shù)據(jù)進行處理計算。查詢后的數(shù)據(jù)傳遞給Reducer 類,在Reducer 類里進行處理,這里需要封裝多個Reducer 類,根據(jù)上面列表內(nèi)的函數(shù)依次封裝,用戶 Reducer 類需要繼承MapReduceBase類及實現(xiàn)Reducer 接口函數(shù),注意的一點是這個里面的輸入Key 及 Value

14、要與 Mapper的輸出 key 及 Value 類型相同。另外因為有電力方面專業(yè)函數(shù)的存在,需要編寫一個附加類來提供這些計算方法,以便于在用戶Reducer 類里面調(diào)用。以上的核心邏輯處理完之后,用output.collect方法來輸出最終的結(jié)果。最后還是使用 JobConf 及 JobClient來提交作業(yè)。6. 信息編碼設(shè)計6.1 代碼結(jié)構(gòu)設(shè)計源代碼分為兩個包,每個包內(nèi)有不同的java類。 Source 文件下需要導(dǎo)入hadoop 框架的 四 個 .xml文 件 分 別 為 : core-site.xml、 hbase-site.xml、 hdfs-site.xml、mapred-sit

15、e.xml。還有需要有hadoop 的 jar包支持。MapReduce框架結(jié)構(gòu)主要是分為3 個類: Driver類、 Map類、 Reduce 類。6。Driver 類代碼結(jié)構(gòu)為:首先創(chuàng)建 JobConf 對象 conf ,設(shè)置 conf 的配置,關(guān)聯(lián) Map類、 Reducer 類及其他類。然后調(diào)用 JobClient 的靜態(tài)方法 runJob 方法啟動 M/R程序。Map 類代碼結(jié)構(gòu)為:這個用戶類要求繼承自MapReduceBase并且實現(xiàn)Mapper 接口,然后根據(jù)檢索條件遍歷HBase 中的內(nèi)容,得到所需要的內(nèi)容,并且或輸出或傳遞給Reducer用戶類。Reducer 類代碼結(jié)構(gòu)為:

16、 這個用戶類要求繼承自MapReduceBase并且實現(xiàn) Reducer 接口,然后通過調(diào)用附加類中的函數(shù)運算或者根據(jù)要求,對Mapper 之后的數(shù)據(jù)經(jīng)行處理,并且利用 output.collect方法輸出最終的結(jié)果。附加類代碼結(jié)構(gòu):根據(jù)表中所列的函數(shù)及其他需求,編寫封裝函數(shù)。6.2 代碼命名規(guī)則盡量使用英文直譯之后名稱來定義,首字母大寫。7. 維護設(shè)計7.1 系統(tǒng)的可靠性和安全性后期設(shè)計中會加入控制臺設(shè)計,權(quán)限設(shè)計以及針對用戶的特殊設(shè)計。7.2 系統(tǒng)及用戶維護設(shè)計利用 hadoop 框架提供的維護可以實現(xiàn)這一功能。7.3 系統(tǒng)擴充設(shè)計因為 hadoop 框架是支持橫向擴展的,所以存儲量這方面

17、不用擔心。在功能方面可以預(yù)留接口以方便以后的功能性擴展。8. 系統(tǒng)配置8.1 硬件配置開發(fā):可以在虛擬機下開發(fā),需要五臺虛擬機搭建hadoop 集群(測試使用) 。運行:多臺普通的X86 服務(wù)器。(實體的hadoop 集群)8.2 軟件配置開發(fā)環(huán)境: eclipse、 java1.6 、 hadoop 框架、 HBase、 win7 64位操作系統(tǒng)運行環(huán)境: zookeeper 、 HBase、 Hadoop、 Linux64位操作系統(tǒng)。7。9. 關(guān)鍵技術(shù)9.1 關(guān)鍵技術(shù)的一般說明Map/Reduce 是一個用于大規(guī)模數(shù)據(jù)處理的分布式計算編程模型,用戶定義一個map 函數(shù)來處理一個 Key/V

18、alue 對以生成一批中間的 key/value 對,在定義一個 reduce 函數(shù)將所有的這些中間的有著相同的 key 的 values 合并起來。而基于 hadoop 的 MapReduce也是如此。9.2 關(guān)鍵技術(shù)的實現(xiàn)方案運行于Hadoop 的 MapReduce 應(yīng)用程序最基本的組成部分包括一個Mapper 和一個Reducer 類,以及一個創(chuàng)建JobConf 的執(zhí)行程序,在一些應(yīng)用中還可以包括一個Combiner類。 MapReduce框架是由一個單獨的 JobTracker (master )和很多歌 TaskTracker (slave )集群節(jié)點的一個共同組成。在 MapReduce客戶端的代碼需要指明輸入 / 輸出的位置(文件路徑 /DB/NOSQL/HBASE),客戶端再加上作業(yè)的參數(shù),就構(gòu)成了作業(yè)配置(job configuration),客戶端代碼需要定義map 和 reduce 方法通過實現(xiàn)合適的抽象類,并在實現(xiàn)的方法中編寫業(yè)務(wù)邏輯,在客戶端還要定義 Map/Reduce 的輸入和輸出類型,當Hadoophe job client提交作業(yè)( jar包 /class/可執(zhí)行程序) 和配置信息給J

溫馨提示

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

評論

0/150

提交評論