一、Mapper編寫
1.創(chuàng)建Mapper類WordCountMapper,繼承org.apache.hadoop.mapreduce.Mapper抽象類;
2.注意Text導(dǎo)包不要導(dǎo)錯了,應(yīng)該是org.apache.hadoop.io.Text。
二、Reducer編寫
1.創(chuàng)建Reducer類WordCountReducer,繼承org.apache.hadoop.mapreduce.Reducer抽象類;
2.寫業(yè)務(wù)邏輯,實現(xiàn)按單詞累加計算mapper的結(jié)果。
三、Driver編寫
1.獲取job;
2.設(shè)置jar包路徑;
3.關(guān)聯(lián)mapper和reducer;
4.設(shè)置map輸出的key和value類型;
5.設(shè)置最終輸出的key和value類型;
6.設(shè)置輸入路徑和輸出路徑;
7.提交job,等待運(yùn)行結(jié)束。
四、本地運(yùn)行代碼
1.Edit configurations,輸入兩個參數(shù),第一個參數(shù)是要統(tǒng)計的輸入文檔的路徑F:\javaProject\hadoop\input\wordcount.txt,第二個參數(shù)是MR結(jié)果輸出路徑F:\javaProject\hadoop\output\wordcount,注意輸出路徑要不存在,否則會報錯;
2.運(yùn)行WordCountDriver,觀察輸出路徑中的文件,會包含四個文件:
._SUCCESS.crc
.part-r-00000.crc
_SUCCESS
part-r-00000
前兩個是校驗文件,第三個是成功標(biāo)識,最后一個是結(jié)果文件。
五、打成jar包
1.pom.xml增加maven打包依賴,build部分,詳見最后代碼包;
2.idea中選擇maven中的Lifecycle中的package進(jìn)行打包;
3.生成的jar包在target目錄下。
六、在集群環(huán)境下運(yùn)行
1.將jar包上傳到集群任意一臺機(jī)器上,這里以hadoop01為例;
2.運(yùn)行jar包,命令為:
hadoop jar MapReduceDemo-1.0-SNAPSHOT.jar com.kaceyollie.mr.wordcount.WordCountDriver /wcinput /wcoutput
3.打開http://hadoop02:8088可以查看Yarn中的任務(wù)運(yùn)行情況;
4.打開http://hadoop01:9870查看運(yùn)行結(jié)果
七、代碼
代碼見https://gitee.com/kaceyollie/bigdata-study.git中,MapReduceDemo項目中com.kaceyollie.mr.wordcount包