




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《大數據應用開發》課程課程主題:MapReduce工作原理MapReduce框架要是由Map和Reduce階段來實現計算的,那么這兩個階段內部是如何協同工作的呢?2執行MapTask分片、格式化數據源執行ReduceTask執行Shuffle過程寫入文件3MapTask作為MapReduce工作流程前半部分,它主要經歷5個階段,分別是Read階段、Map階段、Collect階段、Spill階段和Combiner階段。4ReduceTask的工作過程主要經歷了5個階段,分別是Copy階段、Merge階段、Sort階段、Reduce階段和Write階段。5Shuffle是MapReduce的核心,它用來確保每個reducer的輸入都是按鍵排序的。它的性能高低直接決定了整個MapReduce程序的性能高低,map和reduce階段都涉及到了shuffle機制。6《大數據應用開發》課程課程主題:MapReduce運行模式在當前的開發環境模擬MapReduce執行環境,處理的數據及輸出結果在本地操作系統。把MapReduce程序打成一個Jar包,提交至Yarn集群上去運行任務。由于Yarn集群負責資源管理和任務調度,程序會被框架分發到集群中的節點上并發的執行,因此處理的數據和輸出結果都在HDFS文件系統中。集群運行模式本地運行模式8《大數據應用開發》課程課程主題:HDFS的JavaAPI操作任務4.7MapReduce經典案例——數據去重4.7.1案例分析案例實現4.7.21.數據去重介紹數據去重主要是為了掌握利用并行化思想來對數據進行有意義的篩選,數據去重指去除重復數據的操作。在大數據開發中,統計大數據集上的多種數據指標,這些復雜的任務數據都會涉及數據去重。2.案例需求及分析文件file1.txt本身包含重復數據,并且與file2.txt同樣出現重復數據,現要求使用Hadoop大數據相關技術對以上兩個文件進行去重操作,并最終將結果匯總到一個文件中。(1)編寫MapReduce程序,在Map階段采用Hadoop默認作業輸入方式后,將key設置為需要去重的數據,而輸出的value可以任意設置為空。(2)在Reduce階段,不需要考慮每一個key有多少個value,可以直接將輸入的key復制為輸出的key,而輸出的value可以任意設置為空,這樣就會使用MapReduce默認機制對key(也就是文件中的每行內容)自動去重。1.Map階段實現使用Eclipse開發工具打開之前創建的Maven項目HadoopDemo,并且新創建cn.itcast.mr.dedup包,在該路徑下編寫自定義Mapper類DedupMapper,主要用于讀取數據集文件將TextInputFormat默認組件解析的類似<0,2018-3-1a>鍵值對修改為<2018-3-1a,null>。2.Reduce階段實現根據Map階段的輸出結果形式,同樣在cn.itcast.mr.dedup包下,自定義Reducer類DedupReducer,主要用于接受Map階段傳遞來的數據,根據Shuffle工作原理,鍵值key相同的數據就會被合并,因此輸出數據就不會出現重復數據了。3.Driver程序主類實現編寫MapReduce程序運行主類DedupDriver,主要用于設置MapReduce工作任務的相關參數。由于本次演示的數據量較小,為了方便、快速地進行案例演示,本案例采用了本地運行模式,對指定的本地D:\\Dedup\\input目錄下的源文件(需要提前準備)實現數據去重,并將結果輸入到本地D:\\Dedup\\output目錄下。4.效果測試為了保證MapReduce程序正常執行,需要先在本地D:\\Dedup\\input目錄下創建文件file1.txt和file2.txt;然后,執行MapReduce程序的程序入口DedupDriver類,正常執行完成后,在指定的D:\\Dedup\\output目錄下生成結果文件。16《大數據應用開發》課程課程主題:
MapReduce經典案例——TopN任務4.8MapReduce經典案例——TopN4.8.1案例分析案例實現4.8.2181.TopN分析法介紹TopN分析法是指從研究對象中按照某一個指標進行倒序或正序排列,取其中所需的N個數據,并對這N個數據進行重點分析的方法。192.案例需求及分析現假設有數據文件num.txt,現要求使用MapReduce技術提取上述文本中最大的5個數據,并最終將結果匯總到一個文件中。(1)先設置MapReduce分區為1,即ReduceTask個數一定只有一個。我們需要提取TopN,即全局的前N條數據,不管中間有幾個Map、Reduce,最終只能有一個用來匯總數據。(2)在Map階段,使用TreeMap數據結構保存TopN的數據,TreeMap默認會根據其鍵的自然順序進行排序,也可根據創建映射時提供的Comparator進行排序,其firstKey()方法用于返回當前集合最小值的鍵。(3)在Reduce階段,將Map階段輸出數據進行匯總,選出其中的TopN數據,即可滿足需求。這里需要注意的是,TreeMap默認采取正序排列,需求是提取5個最大的數據,因此要重寫Comparator類的排序方法進行倒序排序。201.Map階段實現使用Eclipse開發工具打開之前創建的Maven項目HadoopDemo,并且新建cn.itcast.mr.topN包,在該路徑下編寫自定義Mapper類TopNMapper,主要用于將文件中的每行數據進行切割提取,并把數據保存到TreeMap中,判斷TreeMap是否大于5,如果大于5就需要移除最小的數據。TreeMap保存了當前文件最大5條數據后,再輸出到Reduce階段。212.Reduce階段實現根據Map階段的輸出結果形式,同樣在cn.itcast.mr.topN包下,自定義Reducer類TopNReducer,主要用于編寫TreeMap自定義排序規則,當需求取最大值時,只需要在compare()方法中返回正數即可滿足倒序排列,reduce()方法依然是要滿足時刻判斷TreeMap中存放數據是前五個數,并最終遍歷輸出最大的5個數。223.Driver程序主類實現編寫MapReduce程序運行主類TopNDriver,主要用于對指定的本地D:\\topN\\input目錄下的源文件(需要提前準備)實現TopN分析,得到文件中最大的5個數,并將結果輸入到本地D:\\topN\\ou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲加盟店經營管理規范合同
- 城市更新中的不動產登記專題學習
- 大學空中面試題庫及答案
- 美術教學色彩課件
- 心力衰竭培訓課件
- 關于安全的合理化建議
- 衛生院安全生產月活動開展情況
- 重慶市安全生產條例
- 村里安全生產排查
- 北京交警事故處理電話
- 冷鐓機 質量要求技術條件
- translated-NCCN臨床實踐指南:非小細胞肺癌(中文版2022.V5)
- 衛生部手術分級目錄(2023年1月份修訂)
- LY/T 2121-2013檀香栽培技術規程
- GB/T 8312-2002茶咖啡堿測定
- 護士注冊健康體檢表下載【可直接打印版本】
- 骨科出科試題帶答案
- 河道基槽土方開挖專項施工方案
- 現代美國玉米商業育種的種質基礎概要
- GB∕T 4162-2022 鍛軋鋼棒超聲檢測方法
- 中醫治療室工作制度管理辦法
評論
0/150
提交評論