Mapeduce程式設計八大步驟
Mapreduce程式設計八大步
1.1:指定讀取的檔案位於哪裡
FileInputFormat.setInputPaths()指定如何對輸入檔案進行格式化,把輸入文字每一行解析為鍵值對
job.setInputFormatClass()
1.2:指定自定義的Map類
job.setMapperClass()
//map輸出的<k,v>型別,如果<k3,v3>的型別與<k2,v2>型別一致,則可以省略
//job.setMapOutputKeyClass()
//job.setMapOutputValueClass()
1.3:分割槽
job.setPartitionerClass()
//設定reduce任務個數
//job.setNumReducetasks(1)
1.4:TODO 排序 分組
1.5:規約
job.setCombinerClass()
2.1:指定自定義的Reduce類
job.setReduceClass()
//指定reduce的輸出型別
//job.setOutputKeyClass()
//job.setOutputValueClass()
2.2:指定寫出的檔案位置
FileOutputFormat.setOutputPath()
指定如何對輸出檔案格式化型別
job.setoutputFormatClass()
2.3:把job提交給JobTracker執行
System.exit(status)
MapReduce程式的執行步驟:
1.Map任務處理
1.1 讀取輸入檔案內容,解析成key,value對,對輸入檔案的每一行,解析成key,value對。每一個鍵值對呼叫一次map
函式
1.2 寫自己的邏輯,對輸入的key,value處理,轉換成新的key,value輸出
1.3 對輸出的key,value進行分割槽
1.4 對不同分割槽的資料,按照key進行排序,分組相同key的value放到一個集合中
1.5 (可選)分組後的資料進行規約
2. reduce任務處理
2.1 對多個Map任務的輸出,按照不同的分割槽,通過網路copy到不同的reduce節點
2.2 對多個map任務的輸出進行合併,排序,寫reduce函式自己的邏輯,對輸入的key,value處理,轉換成新的key,value輸出
2.3 把reduce的輸出儲存到檔案中
相關文章
- 機器學習 | 八大步驟解決90%的NLP問題機器學習
- 六大步驟助你設計出優秀應用
- 程式設計《八榮八恥》程式設計
- 網站設計的八個步驟網站
- UDP程式設計(八)UDP程式設計
- 網站建設最核心的九大步驟網站
- 企業網站建設的七大步驟網站
- zt8大步驟教你安全使用雲端計算
- 程式設計八步走程式設計
- linux下bluetooth程式設計(八)SDP層程式設計Linux程式設計
- xftp安裝步驟,xftp安裝的2大步驟FTP
- 八. Go併發程式設計--errGroupGo程式設計
- 程式設計師必看的書(八)程式設計師
- myeclipse 清理專案快取的幾大步驟Eclipse快取
- 改需求之路:設計師的一小步,程式設計師的一大步程式設計師
- 八、GO程式設計模式:PIPELINEGo程式設計設計模式
- 程式設計師的八種級別程式設計師
- 程式設計師的八個級別程式設計師
- 網頁設計入門應該學什麼?網站設計八步驟分享網頁網站
- APP安卓滲透測試四大步驟APP安卓
- 維護伺服器的五大步驟伺服器
- 新手程式設計師程式設計必不可少的八大工具程式設計師
- 回望八年的程式設計師生涯程式設計師
- 程式設計師的八個級別薦程式設計師
- Java中的函數語言程式設計(八)流Stream並行程式設計Java函數程式設計並行行程
- Java 併發程式設計(八) -- AbstractQueuedSynchronizer中的NodeJava程式設計
- Java程式設計師的八個最佳實踐Java程式設計師
- Java併發程式設計八股文!Java程式設計
- View的繪製三:UI繪製的三大步驟ViewUI
- 《Go 語言程式設計》 讀書筆記 (八) 包Go程式設計筆記
- Flink實戰(八) - Streaming Connectors 程式設計程式設計
- 資料庫實驗八 資料庫程式設計資料庫程式設計
- 八塊腹肌:矽谷程式設計師的新標配程式設計師
- 23種設計模式(八)-原型設計模式設計模式原型
- 設計模式(八)——策略模式設計模式
- 如何設計一門語言(八)——非同步程式設計和CPS變換非同步程式設計
- Java 網路程式設計 – TCP協議基本步驟Java程式設計TCP協議
- 使用C語言程式設計的7個步驟C語言程式設計