




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、目錄目錄11.引言21.1背景與目的21.2專業(yè)術語及說明21.3參考資料22. 設計概述32.1任務及目標32.2需求概述32.3運行環(huán)境概述33.系統(tǒng)詳細需求分析43.1詳細需求分析44.總體設計方案44.1系統(tǒng)總體結構44.2系統(tǒng)模塊劃分55.系統(tǒng)詳細設計55.1系統(tǒng)結構設計55.2系統(tǒng)功能模塊詳細設計66.信息編碼設計66.1代碼結構設計66.2代碼命名規(guī)則77.維護設計77.1系統(tǒng)的可靠性和安全性77.2系統(tǒng)及用戶維護設計77.3系統(tǒng)擴充設計78.系統(tǒng)配置78.1硬件配置78.2軟件配置79.關鍵技術79.1關鍵技術的一般說明79.2關鍵技術的實現(xiàn)方案810. 測試810.1測試方案
2、81.引言1.1背景與目的當下互聯(lián)網(wǎng)和計算機技術越來越多的被各行各業(yè)利用,于是產生了海量的數(shù)據(jù)。進入2012年后,“大數(shù)據(jù)”一詞越來越多的被提及,人們用它來描述和定義信息爆照時代產生的海量數(shù)據(jù)。顯而易見地,數(shù)據(jù)正在迅速膨脹并變大,它決定著企業(yè)的未來發(fā)展,雖然現(xiàn)在企業(yè)可能還沒有意識到,但隨著時間的推移,人們將越來越多的意識到數(shù)據(jù)對企業(yè)的重要性。而這就需要有一種框架來分析處理這種大數(shù)據(jù)。對于電力行業(yè)更是如此,電力方面每時每刻都在產生著大量的數(shù)據(jù),而對這些數(shù)據(jù)的分析和利用有著巨大的市場前景和意義。1.2專業(yè)術語及說明Hadoop :一種分布式基礎架構,由Apache基金會開發(fā)。用戶可以在不了解分布是
3、底層細節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力運算和存儲。Hadoop實現(xiàn)了一個分布式系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。HDFS有著高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(high throughput)來訪問應用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。Hbase:是一個分布式的、面向列的開源數(shù)據(jù)庫。Mapre
4、duce:是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1T)的并行運算。當前的軟件實現(xiàn)是指定一個Map函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce函數(shù),用來保證所有的映射的鍵值對中的每一個共享相同的鍵組。1.3參考資料【1】相海泉. 大數(shù)據(jù)時代J. 中國信息界, 2013 (5).【2】李成華, 張新訪, 金海, 等. MapReduce: 新型的分布式并行計算編程模型J. 計算機工程與科學, 2011, 33(003): 129-135.【3】謝桂蘭, 羅省賢. 基于 HadoopMapReduce 模型的應用研究 JJ. 微型機與應用, 2010, 25(3): 4-7.【
5、4】陳勇. 基于 Hadoop 平臺的通信數(shù)據(jù)分布式查詢算法的設計與實現(xiàn) DD. 北京: 北京交通大學, 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. 設計概述從HBASE中取數(shù)據(jù)(driver 類)通過MapReduce對數(shù)據(jù)進行第一次處理(Mapper 類)根據(jù)應用層的需要,對處理過的數(shù)據(jù)再次進行處理(Re
6、ducer類以及附加類:簡單的數(shù)學基本函數(shù)、統(tǒng)計、概率等),并且返回給客戶端(預留接口)2.1任務及目標數(shù)據(jù)合成:1、 PI的常用函數(shù):最大值、平均值等2、 專業(yè)函數(shù)(與PI服務器類似的內置函數(shù))數(shù)據(jù)訂單:1、 基本的數(shù)據(jù)挖掘、數(shù)理統(tǒng)計函數(shù)功能(如統(tǒng)計/概率)2.2需求概述因為電力行業(yè)在實際生產和應用的過程中會產生大量的數(shù)據(jù),而這些數(shù)據(jù)又對電力有著巨大的影響和意義。對這些數(shù)據(jù)的處理和存儲就成為一個迫在眉睫的問題。從這些數(shù)據(jù)中可以提取很多對于電力行業(yè)以后的發(fā)展和現(xiàn)今的實際生產有著指導意義的數(shù)據(jù),利用好這些海量的數(shù)據(jù)則成為如今電力的一個極具戰(zhàn)略意義的問題。但是,如今的PI服務器不但不能滿足于這個需
7、求而且成本較高,所以就有替代的必要。2.3運行環(huán)境概述20個計算節(jié)點的Hadoop集群(可橫向擴展),集群配置為 2*4核CPU,4080G內存,612T存儲。2.4詳細設計方法和工具利用Map函數(shù)從Hbase中取數(shù)據(jù),Reduce函數(shù)對取到的數(shù)據(jù)進行處理,返回結果給用戶。如下圖編程工具:eclipse編程語言:java3.系統(tǒng)詳細需求分析3.1詳細需求分析A功能需求分析:批量查詢功能,數(shù)據(jù)處理功能(專業(yè)數(shù)學函數(shù),基本計算函數(shù),統(tǒng)計等)B性能需求分析:實時性要求較高,對于數(shù)據(jù)的處理計算Mapreduce完全能夠勝任C資源需求分析:多臺普通X86服務器,成本較低。D系統(tǒng)運行環(huán)境及限制條件分析:系
8、統(tǒng)需要在Linux系統(tǒng)上面運行,搭建hadoop集群框架E現(xiàn)有軟、硬件資源分析:如今華電現(xiàn)有X86服務器4臺,可以利用虛擬技術對hadoop集群進行布置。軟件方面目前hadoop框架已搭建成功,可以直接使用。4.總體設計方案4.1系統(tǒng)總體結構如下圖為hadoop、hbase、hadoop mapreduce的層次結構 MapReduce分為三個類:Driver類、Mapper類、Reducer類輸入的參數(shù)類型是String類(測點名+時間段+(query內容),解析之后,通過Map Function按照檢索條件最后輸出List(Hashtable)類型結果;經過Map Function之后的結
9、果,然后在Reducer類里通過調用附加類的函數(shù)進行運算,最后輸出結果List(Value)。如下圖 Map FunctionArrayList Reduce FunctionArrayList(SearchResultsw)。用戶4.2系統(tǒng)模塊劃分1)Map類:Map寫入檢索條件,遍歷數(shù)據(jù)庫HBASE,得到需要的數(shù)據(jù)(可以提供的API按時間檢索,按點名檢索等)。需要參數(shù)為Hashtable類型(hashtable)進過Map函數(shù)之后輸出數(shù)據(jù)為ArrayList。2)Reduce類:Reduce函數(shù)得到Map的返回結果即ArrayList類型的數(shù)據(jù)之后經過運算處理返回給User的數(shù)據(jù)為Arra
10、yList(SearchResultsw)。3)基礎類:封裝的函數(shù):加減乘除等基本運算、統(tǒng)計count、計算概率、解析字符串、專業(yè)函數(shù)等。4) Driver類:使用JobConf和JobClient提交作業(yè);與Map類和Reduce類關聯(lián)。5.系統(tǒng)詳細設計5.1系統(tǒng)結構設計系統(tǒng)分為兩個java包:一個是批量查詢的包(querydatatable),一個是批量計算的包(datamath)。在querydatatable包內,有四個類:DriverQuery類、QueryMap類、StringAnalytical類、TxtHBase類。在datamath包內,有多個類:MathDriver類、Ma
11、thMap類、MathSum類、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ù)(水汽、功率)字符串解析(.)字符串解析(.)時間轉化(時間戳)時間轉化(時間戳)錯誤處理錯誤處理好點、壞點處理好點、壞點
12、處理55.2系統(tǒng)功能模塊詳細設計總體功能分為兩個部分:數(shù)據(jù)訂單,數(shù)據(jù)合成。A. 數(shù)據(jù)訂單即批量查詢功能編寫字符串解析類,解析HBase的RowKey。然后編寫Mapper類,這個類繼承自MapReduceBase,重寫這里面的接口函數(shù)Mapper,將檢索條件寫入Mapper類。然后通過Driver類調用JobConf和JobClient提交作業(yè)。B. 數(shù)據(jù)合成即根據(jù)上次應用的需求對查詢后的數(shù)據(jù)進行處理計算。查詢后的數(shù)據(jù)傳遞給Reducer類,在Reducer類里進行處理,這里需要封裝多個Reducer類,根據(jù)上面列表內的函數(shù)依次封裝,用戶Reducer類需要繼承MapReduceBase類及實
13、現(xiàn)Reducer接口函數(shù),注意的一點是這個里面的輸入Key及Value要與Mapper的輸出key及Value類型相同。另外因為有電力方面專業(yè)函數(shù)的存在,需要編寫一個附加類來提供這些計算方法,以便于在用戶Reducer類里面調用。以上的核心邏輯處理完之后,用output.collect方法來輸出最終的結果。最后還是使用JobConf及JobClient來提交作業(yè)。6.信息編碼設計6.1代碼結構設計源代碼分為兩個包,每個包內有不同的java類。Source文件下需要導入hadoop框架的四個.xml文件分別為:core-site.xml、hbase-site.xml、hdfs-site.xml、
14、mapred-site.xml。還有需要有hadoop的jar包支持。MapReduce框架結構主要是分為3個類:Driver類、Map類、Reduce類Driver類代碼結構為:首先創(chuàng)建JobConf對象conf,設置conf的配置,關聯(lián)Map類、Reducer類及其他類。然后調用JobClient的靜態(tài)方法runJob方法啟動M/R程序。Map類代碼結構為:這個用戶類要求繼承自MapReduceBase并且實現(xiàn)Mapper接口,然后根據(jù)檢索條件遍歷HBase中的內容,得到所需要的內容,并且或輸出或傳遞給Reducer用戶類。Reducer類代碼結構為:這個用戶類要求繼承自MapReduce
15、Base并且實現(xiàn)Reducer接口,然后通過調用附加類中的函數(shù)運算或者根據(jù)要求,對Mapper之后的數(shù)據(jù)經行處理,并且利用output.collect方法輸出最終的結果。附加類代碼結構:根據(jù)表中所列的函數(shù)及其他需求,編寫封裝函數(shù)。6.2代碼命名規(guī)則盡量使用英文直譯之后名稱來定義,首字母大寫。7.維護設計7.1系統(tǒng)的可靠性和安全性后期設計中會加入控制臺設計,權限設計以及針對用戶的特殊設計。7.2系統(tǒng)及用戶維護設計利用hadoop框架提供的維護可以實現(xiàn)這一功能。7.3系統(tǒng)擴充設計因為hadoop框架是支持橫向擴展的,所以存儲量這方面不用擔心。在功能方面可以預留接口以方便以后的功能性擴展。8.系統(tǒng)配
16、置8.1硬件配置開發(fā):可以在虛擬機下開發(fā),需要五臺虛擬機搭建hadoop集群(測試使用)。運行:多臺普通的X86服務器。(實體的hadoop集群)8.2軟件配置開發(fā)環(huán)境:eclipse、java1.6、hadoop框架、HBase、win7 64位操作系統(tǒng)運行環(huán)境:zookeeper、HBase、Hadoop、Linux64位操作系統(tǒng)9.關鍵技術9.1關鍵技術的一般說明Map/Reduce是一個用于大規(guī)模數(shù)據(jù)處理的分布式計算編程模型,用戶定義一個map函數(shù)來處理一個Key/Value對以生成一批中間的key/value對,在定義一個reduce函數(shù)將所有的這些中間的有著相同的key的value
17、s合并起來。而基于hadoop的MapReduce也是如此。9.2關鍵技術的實現(xiàn)方案運行于Hadoop的MapReduce應用程序最基本的組成部分包括一個Mapper和一個Reducer類,以及一個創(chuàng)建JobConf的執(zhí)行程序,在一些應用中還可以包括一個Combiner類。MapReduce框架是由一個單獨的JobTracker(master)和很多歌TaskTracker(slave)集群節(jié)點的一個共同組成。在MapReduce客戶端的代碼需要指明輸入/輸出的位置(文件路徑/DB/NOSQL/HBASE),客戶端再加上作業(yè)的參數(shù),就構成了作業(yè)配置(job configuration),客戶端代碼需要定義map和reduce方法通過實現(xiàn)合適的抽象類,并在實現(xiàn)的方法中編寫業(yè)務邏輯,在客戶端還要定義Map/Reduce的輸入和輸出類型,當H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學年臨猗縣數(shù)學三上期末學業(yè)質量監(jiān)測試題含解析
- 2024年云南省昆明市云南師范大學附屬小學數(shù)學三年級第一學期期末考試試題含解析
- 2024年湖南省長沙市望城縣三上數(shù)學期末考試試題含解析
- 臨床護理流程試題及答案概覽
- 2025年醫(yī)師考試案例分析與解讀試題及答案
- 2025年行政管理專科文化概論考試試題及答案提綱
- 2025年執(zhí)業(yè)醫(yī)師考試考生經驗試題及答案
- 2025年文化節(jié)的管理與策劃試題及答案
- 執(zhí)業(yè)護士考試小組復習方法試題及答案
- 行政管理專科生語文測試復習試題及答案
- 思想道德與法治2023版教學設計第二章 追求遠大理想 堅定崇高信念
- 21ZJ111 變形縫建筑構造
- 個人不擔當不作為問題清單及整改措施
- 《口袋妖怪漆黑的魅影》圖文攻略全周目
- 《網(wǎng)店美工實訓教程》教學教案
- 兒科護理學第二章生長發(fā)育
- 德語四級真題2023
- 2023屆高考模擬作文“人生有兩段路要走”漫畫作文導寫及范文
- 機電安裝施工工藝及質量驗收標準
- JB/T 20051-2018炒藥機
- GB/T 18442.6-2019固定式真空絕熱深冷壓力容器第6部分:安全防護
評論
0/150
提交評論