Java實現單詞統計


原文鏈接:

https://www.toutiao.com/i6764296608705151496/

單詞統計的是統計一個文件中單詞出現的次數,比如下面的數據源

mapreduce單詞統計理解核心思想

 

其中,最終出現的次數結果應該是下面的顯示

mapreduce單詞統計理解核心思想

 

那么在MapReduce中該如何編寫代碼並出現最終結果?

首先我們把文件上傳到HDFS中(hdfs dfs –put …)

數據名稱:data.txt,大小是size是2G

紅黃綠三個塊表示的是數據存放的塊

mapreduce單詞統計理解核心思想

 

然后數據data.txt進入map階段,會以<K,V>(KV對)的形式進入,K表示的是:每行首字母相對於文件頭的字節偏移量,V表示的是每一行的文本。

mapreduce單詞統計理解核心思想

 

那么我可以用圖表示:藍色的橢圓球表示一個map,紅黃綠數據塊在進入map階段的時候,數據的形式為左邊紅色的<K,V>(KV對)的形式

mapreduce單詞統計理解核心思想

 

經過map處理,比如String.split(""),做一次處理,數據會在不同的紅黃綠數據塊中變為下面的KV形式

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

我們在配置Hadoop的時候或設置reduce的數量,假如有兩個reduce

Map執行完的數據會放到對應的reduce中,如下圖

mapreduce單詞統計理解核心思想

 

這個地方有一個簡單的原理就是

Job.setNumReduce(2)會設置reduce的數量

而HashPartioner類可以利用 key.hashcode % reduce的結果,將不同的map結果輸入到不同的reduce中,比如a-e開頭的放到一個地方,e-z開頭的放到一個地方,那么

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

這樣的數據結果就會變成

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

好那么我們此時可以統計了,我開始編寫代碼

首先我們創建一個wordCount項目,我們創建的項目是maven項目

mapreduce單詞統計理解核心思想

 

其中pom的配置部分

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

我們創建類

mapreduce單詞統計理解核心思想

 

繼承Mapper(注意注釋)

mapreduce單詞統計理解核心思想

 

編寫代碼

mapreduce單詞統計理解核心思想

 

同樣創建WordCountReducer,編寫代碼,利用前面的reduce思想理解

mapreduce單詞統計理解核心思想

 

創建WordCountDriver類編寫代碼

mapreduce單詞統計理解核心思想

 

導出項目jar

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

mapreduce單詞統計理解核心思想

 

我們啟動Hadoop

mapreduce單詞統計理解核心思想

 

我們上傳數據和jar包

mapreduce單詞統計理解核心思想

 

將數據上傳到hdfs上

mapreduce單詞統計理解核心思想

 

執行下面語句

bin/yarn jar /data/wordCount/wordCount.jar com.xlglvc.xx.mapredece.wordcount_client.WordCountDriver /data.txt /outputwordcount

mapreduce單詞統計理解核心思想

 

出了點問題,時間不同步

mapreduce單詞統計理解核心思想

 

安裝ntpdate工具

yum -y install ntp ntpdate

設置系統時間與網絡時間同步

ntpdate cn.pool.ntp.org

mapreduce單詞統計理解核心思想

 

然后重新執行,此時我們新選擇個目錄

bin/yarn jar /data/wordCount/wordCount.jar com.xlglvc.xx.mapredece.wordcount_client.WordCountDriver /data.txt /outputwordcount1

mapreduce單詞統計理解核心思想

 

我們去瀏覽器查詢

mapreduce單詞統計理解核心思想

 

我們查看最終結果

bin/hdfs dfs -text /outputwordcount1/part-r-00000

mapreduce單詞統計理解核心思想

 

出現我們想要的結果,統計完成


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM