更新時(shí)間:2023-06-08 來源:黑馬程序員 瀏覽量:
WordCount算是大數(shù)據(jù)計(jì)算領(lǐng)域經(jīng)典的入門案例,相當(dāng)于Hello World。
雖然WordCount業(yè)務(wù)極其簡單,但是希望能夠通過案例感受背后MapReduce的執(zhí)行流程和默認(rèn)的行為機(jī)制,這才是關(guān)鍵。
WordCount編程實(shí)現(xiàn)思路
map階段的核心:把輸入的數(shù)據(jù)經(jīng)過切割,全部標(biāo)記1,因此輸出就是<單詞,1>。
shuffle階段核心:經(jīng)過MR程序內(nèi)部自帶默認(rèn)的排序分組等功能,把key相同的單詞會(huì)作為一組數(shù)據(jù)構(gòu)成新的kv對。
reduce階段核心:處理shuffle完的一組數(shù)據(jù),該組數(shù)據(jù)就是該單詞所有的鍵值對。對所有的1進(jìn)行累加求和,就是單詞的總次數(shù)。
上傳課程資料中的文本文件1.txt到HDFS文件系統(tǒng)的/input目錄下,如果沒有這個(gè)目錄,使用shell創(chuàng)建。
?hadoop fs -mkdir /input
?hadoop fs -put 1.txt /input
準(zhǔn)備好之后,執(zhí)行官方MapReduce實(shí)例,對上述文件進(jìn)行單詞次數(shù)統(tǒng)計(jì)。
第一個(gè)參數(shù):wordcount表示執(zhí)行單詞統(tǒng)計(jì)任務(wù);
第二個(gè)參數(shù):指定輸入文件的路徑;
第三個(gè)參數(shù):指定輸出結(jié)果的路徑(該路徑不能已存在);