大數(shù)據處理詳細設計說明_第1頁
大數(shù)據處理詳細設計說明_第2頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、6.信息編碼設計6.1 代碼結構設計1.1專業(yè)學習資料目錄目錄1引言1.1 背景與目的1.2 專業(yè)術語及說明3.1.3 參考資料2.設計概述2.1 任務及目標2.2 需求概述2.3 運行環(huán)境概述3.系統(tǒng)詳細需求分析6.3.1 詳細需求分析4.總體設計方案4.1 系統(tǒng)總體結構7.4.2 系統(tǒng)模塊劃分5.系統(tǒng)詳細設計.9.5.1 系統(tǒng)結構設計5.2 系統(tǒng)功能模塊詳細設計1.Q6.2 代碼命名規(guī)則121.1 背景與目的專業(yè)學習資料7維護設計127.1系統(tǒng)的可靠性和安全性127.2 系統(tǒng)及用戶維護設計127.3 系統(tǒng)擴充設計128.系統(tǒng)配置138.1 硬件配置.1.3.8.2 軟件配置.1.3.9.關

2、鍵技術139.1 關鍵技術的一般說明139.2 關鍵技術的實現(xiàn)方案1410.測試.14.10.1 測試方案141.引言當下互聯(lián)網和計算機技術越來越多的被各行各業(yè)利用,于是產生了海量的數(shù)據。進入專業(yè)學習資料2012 年后,大數(shù)據”一詞越來越多的被提及,人們用它來描述和定義信息爆照時代產生的海量數(shù)據。顯而易見地,數(shù)據正在迅速膨脹并變大,它決定著企業(yè)的未來發(fā)展,雖然現(xiàn)在企業(yè)可 能還沒有意識到,但隨著時間的推移,人們將越來越多的意識到數(shù)據對企業(yè)的重要性。而這就需要有一種框架來分析處理這種大數(shù)據。對于電力行業(yè)更是如此,電力方面每時每刻都在產生著大量的數(shù)據,而對這些數(shù)據的分析和利用有著巨大的市場前景和意義

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

4、ments )這樣可以流的形式訪問(streaming access )文件系統(tǒng)中的數(shù)據。Hbase :是一個分布式的、面向列的開源數(shù)據庫。Map reduce :是一種編程模型,用于大規(guī)模數(shù)據集 (大于 1T)的并行運算。當前的軟 件實現(xiàn)是指定一個 Map 函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce 函數(shù),用來保證所有的映射的鍵值對中的每一個共享相同的鍵組。2.1 任務及目標專業(yè)學習資料1.3 參考資料1】相海泉大數(shù)據時代J.中國信息界,2013 (5).2】李成華,張新訪,金海,等.MapReduce:新型的分布式并行計算編程模型J.計算機工程與科學,2011,33

5、(003): 129-135.3】謝桂蘭,羅省賢.基于 HadoopMapReduce模型的應用研究JJ.微型機與應用,2010, 25(3): 4-7.4】陳勇.基于 Hadoop 平臺的通信數(shù)據分布式查詢算法的設計與實現(xiàn)DD.北京:北京交通大學,2009.5 】Taylor R C. An overview of the Hadoop/MapReduce/HBase framework and itscurre nt applicatio ns in bioi nformaticsJ. BMC bioi nformatics, 2010, 11(Suppl 12): S1.2. 設計概述從

6、 HBASE 中取數(shù)據(driver 類)- 通過 MapReduce 對數(shù)據進行第一次處理(Mapper 類)- 根據應用層的需要,對處理過 的數(shù)據再次進行處理(Reducer 類以及附加類:簡單的數(shù)學基本函數(shù)、統(tǒng)計、概率等),并且返回給客戶端 (預留接口)數(shù)據合成:專業(yè)學習資料1、PI 的常用函數(shù):最大值、平均值等2、 專業(yè)函數(shù)(與 PI 服務器類似的內置函數(shù))數(shù)據訂單:1、基本的數(shù)據挖掘、數(shù)理統(tǒng)計函數(shù)功能(如統(tǒng)計/概率)2.2 需求概述因為電力行業(yè)在實際生產和應用的過程中會產生大量的數(shù)據,而這些數(shù)據又對電力有著巨大的影響和意義。對這些數(shù)據的處理和存儲就成為一個迫在眉睫的問題。從這些數(shù)據中

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

8、析:批量查詢功能,數(shù)據處理功能(專業(yè)數(shù)學函數(shù),基本計算函數(shù),統(tǒng) 計等)B 性能需求分析:實時性要求較高,對于數(shù)據的處理計算 Mapreduce 完全能夠勝任C 資源需求分析:多臺普通 X86 服務器,成本較低。D 系統(tǒng)運行環(huán)境及限制條件分析:系統(tǒng)需要在 Linux 系統(tǒng)上面運行,搭建 hadoop 集群框架E 現(xiàn)有軟、硬件資源分析:如今華電現(xiàn)有 X86 服務器 4 臺,可以利用虛擬技術對 hadoop 集群進行布置。軟件方面目前 hadoop 框架已搭建成功,可以直接使用。產二二盤擁節(jié)電數(shù)據塊 0數(shù)鋸塊 14 塊數(shù)據塊 2/-數(shù)據塊 m數(shù)抿塊 4主芳點nlNp無數(shù)據/JobTricJnr塊數(shù)那

9、,Shuffle廠-、結果XR rt |H-專業(yè)學習資料4. 總體設計方案4.1 系統(tǒng)總體結構女口下圖為 hadoop、hbase、hadoop mapreduce 的層次結構Hadoop MapReduceHBaseHDFSMap Reduce 分為三個類:Driver 類、Mapper 類、Reducer 類輸入的參數(shù)類型是 String 類(測點名+時間段+ ( query 內容),解析之后,通過Map Function 按照檢索條件最后輸出 List ( Hashtable )類型結果;經過 Map Function 之后的結果,然后在 Reducer 類里通過調用附加類的函數(shù)進行運算

10、,最后輸出結果 List(Value )。女口下圖專業(yè)學習資料4.2 系統(tǒng)模塊劃分1) Map 類:Map Fun cti onArrayListReduce Fun cti onArrayList(SearchResultsw)。用戶專業(yè)學習資料Map 寫入檢索條件,遍歷數(shù)據庫 HBASE,得到需要的數(shù)據(可以提供的 API 按時間檢索,按點名檢索等)。需要參數(shù)為 Hashtable 類型(hashtable )進過 Map 函 數(shù)之后輸出數(shù)據為 ArrayList。2)Reduce 類:Reduce 函數(shù)得到 Map 的返回結果即 ArrayList 類型的數(shù)據之后經過運算處理返回給 Us

11、er 的數(shù)據為 ArrayList(SearchResultsw)。3)基礎類:封裝的函數(shù):加減乘除等基本運算、統(tǒng)計 count、計算概率、解析字符串、專業(yè) 函數(shù)等。4)Driver 類:使用 JobConf 和 JobClient 提交作業(yè);與 Map 類和 Reduce 類關聯(lián)。5.1 系統(tǒng)結構設計系統(tǒng)分為兩個 java 包:一個是批量查詢的包(querydatatable ), 一個是批量計算的包(datamath )。在 querydatatable 包內,有四個類:DriverQuery 類、QueryMap 類、專業(yè)學習資料StringAnalytical 類、TxtHBase 類

12、。在 datamath 包內,有多個類 :MathDriver 類、MathMap 類、MathSum 類、專業(yè)學習資料MathCount 類、MathDataAppend 類等,這個包內需要封裝一些類似PI 服務器里的函數(shù)如下表所示PIMapReduce三角函數(shù)三角函數(shù) (sin、cos、tan )Log、lgLog、lg平方根 Sqr、方差平方根 Sqr、方差Avg、max、min、total ( sum)Avg、max、min、total ( sum)絕對值 abs、近似值(round)絕對值 abs、近似值(round)加減乘除加減乘除統(tǒng)計統(tǒng)計專業(yè)函數(shù)(水汽、功率)專業(yè)函數(shù)(水汽、功率

13、)字符串解析(.)字符串解析()時間轉化(時間戳)時間轉化(時間戳)錯誤處理錯誤處理好點、壞點處理好點、壞點處理55.2 系統(tǒng)功能模塊詳細設計總體功能分為兩個部分:數(shù)據訂單,數(shù)據合成。A.數(shù)據訂單即批量查詢功能編寫字符串解析類,解析 HBase 的 RowKey。然后編寫 Map per 類,這個類繼承專業(yè)學習資料自 MapReduceBase ,重寫這里面的接口函數(shù) Map per ,將檢索條件寫入 Mapper 類。然后通過 Driver 類調用 JobConf 和 JobClient 提交作業(yè)。B.數(shù)據合成即根據上次應用的需求對查詢后的數(shù)據進行處理計算。查詢后的數(shù)據傳遞給Reducer

14、類,在 Reducer 類里進行處理,這里需要封裝多個Reducer 類,根據上面列表內的函數(shù)依次封裝,用戶 Reducer 類需要繼承MapReduceBase 類及實現(xiàn) Reducer 接口函數(shù),注意的一點是這個里面的輸入Key 及Value 要與 Map per 的輸出 key 及 Value 類型相同。另外因為有電力方面專業(yè)函數(shù)的存在,需要編寫一個附加類來提供這些計算方法,以便于在用戶 Reducer 類里面調用。以上的核心邏輯處理完之后,用 output.collect 方法來輸出最終的結果。最后還是使用 JobConf 及 JobClient 來提交作業(yè)。6.1 代碼結構設計源代碼

15、分為兩個包,每個包內有不同的 java 類。Source 文件下需要導入 hadoop 框架的四個.xml 文 件分另 U 為 : core-site.xml 、 hbase-site.xml 、 hdfs-site.xml 、 mapred-site.xml 。還有需要有 hadoop 的 jar 包支持。Map Reduce 框架結構主要是分為3 個類:Driver 類、Map 類、Reduce 類Driver 類代碼結構為:首先創(chuàng)建 JobCo nf 對象 conf,設置 conf 的配置,關聯(lián) Map 類、Reducer 類及其他類。然后調用 JobClie nt 的靜態(tài)方法 run

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

17、設計7.1 系統(tǒng)的可靠性和安全性后期設計中會加入控制臺設計,權限設計以及針對用戶的特殊設計7.2 系統(tǒng)及用戶維護設計利用 hadoop 框架提供的維護可以實現(xiàn)這一功能并且實現(xiàn) Reducer之后的數(shù)據經行處。專業(yè)學習資料7.3 系統(tǒng)擴充設計因為 hadoop 框架是支持橫向擴展的,所以存儲量這方面不用擔心。在功能方面可以 預留接口以方便以后的功能性擴展。8. 系統(tǒng)配置8.1 硬件配置開發(fā):可以在虛擬機下開發(fā),需要五臺虛擬機搭建 hadoop 集群(測試使用)。運行:多臺普通的 X86 服務器。(實體的 hadoop 集群)8.2 軟件配置開發(fā)環(huán)境:eclipse、java1.6、hadoop

18、框架、HBase、win7 64 位操作系統(tǒng) 運行環(huán)境:zookeeper、HBase、Hadoop、Linux64 位操作系統(tǒng)9. 關鍵技術9.1 關鍵技術的一般說明Map/Reduce 是一個用于大規(guī)模數(shù)據處理的分布式計算編程模型,用戶定義一個 map函數(shù)來處理一個 Key/Value 對以生成一批中間的 key/value 對,在定義一個 reduce 函數(shù)將 所有的這些中間的有著相同的 key 的 values 合并起來。而基于 hadoop 的 Map Reduce 也專業(yè)學習資料是如此。9.2 關鍵技術的實現(xiàn)方案運行于 Hadoop 的 MapReduce 應用程序最基本的組成部分包括一個Mapper 和一個Re

溫馨提示

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

評論

0/150

提交評論