更新時間:2021-04-15 來源:黑馬程序員 瀏覽量:
對MapReduce的編程思想和模型有了了解以后,下面我們借助MapReduce編程的一個典型案例——詞頻統(tǒng)計, 來學(xué)習(xí)實現(xiàn)MapReduce編程開發(fā)。
假設(shè)我們有兩個文本文件,這兩個文本文件位于HDFS中,文件如1,2所示:
文件1 text1.txt
Hello World Hello Hadoop Hello itcast文件2 text2.txt
Hadoop MapReduce MapReduce Spark
根據(jù)MapReduce編程模型,那么單詞計數(shù)的實現(xiàn)過程,如圖1所示。
圖1 詞頻統(tǒng)計過程
在圖1演示中,首先,MapReduce通過默認(rèn)組件TextInputFormat將待處理的數(shù)據(jù)文件(如text1.txt和text2.txt),把每一行的數(shù)據(jù)都轉(zhuǎn)變?yōu)?lt;key,value>鍵值對(其中,對應(yīng)key為偏移量,value為這一行的文本內(nèi)容);其次,調(diào)用Map()方法,將單詞進(jìn)行切割并進(jìn)行計數(shù),輸出鍵值對作為Reduce階段的輸入鍵值對;最后,調(diào)用Reduce()方法將單詞匯總、排序后,通過TextOutputFormat組件輸出到結(jié)果文件中。
猜你喜歡: