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