1. 程式人生 > >java大資料最全課程學習筆記(5)--MapReduce精通(一)

java大資料最全課程學習筆記(5)--MapReduce精通(一)

> 目前[CSDN](https://blog.csdn.net/weixin_42208775),[部落格園](https://home.cnblogs.com/u/gitBook/),[簡書](https://www.jianshu.com/u/da41700fde04)同步發表中,更多精彩歡迎訪問我的[gitee pages](http://it-it.gitee.io/bigdata) [toc] # MapReduce精通(一) ## MapReduce入門 ### MapReduce定義 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221531891-724815908.png) ### MapReduce優缺點 #### 優點 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221543621-1957969080.png) ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221549690-911238824.png) #### 缺點 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221607359-1517726715.png) ### MapReduce核心思想 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221622863-989821837.png) 總結:分析WordCount資料流走向深入理解MapReduce核心思想。 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221637086-1448236759.png) ### MapReduce程序 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221648163-2101773080.png) ### MapReduce程式設計規範 > 使用者編寫的程式分成三個部分:Mapper、Reducer和Driver。 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221659841-1002094078.png) ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221706793-804266719.png) ### WordCount案例實操 1. 需求 > 在給定的文字檔案中統計輸出每一個單詞出現的總次數 1. 輸入資料 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221718636-302546463.png) 2. 期望輸出資料 hadoop 2 hello 4 spark 1 world 3 2. 需求分析 按照MapReduce程式設計規範,分別編寫Mapper,Reducer,Driver,如圖所示。 ![](https://img2020.cnblogs.com/blog/1577985/202007/1577985-20200719221729030-172508982.png) 3. 環境準備 1. 建立maven工程 2. 在pom.xml檔案中新增如下依賴 ```xml ``` 3. 在專案的src/main/resources目錄下,新建一個檔案,命名為“log4j.properties”,在檔案中填入 ```properties log4j.rootLogger=INFO, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=target/spring.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n ``` 4. 編寫程式 1. 編寫Mapper類 ```java public class WordcountMapper extend