![大数据技术与应用](https://wfqqreader-1252317822.image.myqcloud.com/cover/689/33643689/b_33643689.jpg)
上QQ阅读APP看书,第一时间看更新
3.6 实训2 MapReduce应用
1.实训目的
编写一个MapReduce程序,实现简单的字符统计功能。
2.实训内容
1)MapReduce项目结构如图3-55所示。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/80_04.jpg?sign=1739411333-7VSkxC5mBBiG3g9zLzqq8pPEcp65O1hV-0-b87cf037ed4c98ded8f40705525b4298)
图3-55 MapReduce项目结构
2)WordMapper类代码如下。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/80_05.jpg?sign=1739411333-iRQfU13vqBEijXPnr8TxMKeXOhY3X6K3-0-cd64e70bf864460b521be0b42ea11f39)
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/81_01.jpg?sign=1739411333-CJYi07Ks8nprzzw8EhS6TpwdnlnZVNXO-0-92f8f61eca9ecb3f6b53dfa06878eed4)
3)WordReducer类代码如下。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/81_02.jpg?sign=1739411333-fZyrl2WjqqsGjFHZdDuXFWfVNzBV62NR-0-e7b88e6c94ecce3b91d4958fb09b5751)
4)WordMain类代码如下。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/81_03.jpg?sign=1739411333-YBVZwBwy5KRSbVgYY1RAGm20BR41bkZ2-0-45cff972194603ac44c05e794b847827)
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/82_01.jpg?sign=1739411333-jnM9UKRz7tD8qJCcUrVjbGRaeO76DDvQ-0-2518f857e51ef861cd7c26b09873f87a)
5)file1.txt和file2.txt都是统计单词存放文件。
file1.txt中的内容如下。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/82_02.jpg?sign=1739411333-BMiXitmA7I6mnJVDtBPBYL1g8eAwUZ3n-0-5033262bb0a70aa35ab4357848a61142)
file2.txt中的内容如下。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/82_03.jpg?sign=1739411333-FSg7zH77bpPGkB2hKokc52dVXB9nNe6g-0-e13db0a40725624c4a2b3ccb44868a2c)
6)将wordcount打包。首先导入JAR文件,如图3-56所示。然后导入wordcount源文件,如图3-57所示。最后打包wordcount,如图3-58所示。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/83_01.jpg?sign=1739411333-592pztxCq5KFd4rsSlvCSATWxBtQy5AS-0-89f0b69913b5651596777986e390f708)
图3-56 导入JAR文件
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/83_02.jpg?sign=1739411333-nLZxoa8kqd5svDTekECL0Ae6vTDUJXd6-0-a26a63c78d223d28748ffd5ae913b6f3)
图3-57 导入wordcount源文件
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/84_01.jpg?sign=1739411333-hbKmFR5j4bcQqJqZQ1Z3Q3uukBWg2EZ5-0-dfdb4b0eeecd640dc168c053a8ae4cbb)
图3-58 打包wordcount
7)导入文件到虚拟机中。在Linux的opt目录下新建一个file文件夹,将文件file1.txt和file2.txt复制进去,同时将wordcount.jar文件也复制到opt目录中,如图3-59所示。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/84_02.jpg?sign=1739411333-PBC2fnPsRgi1SeoiRdCRCCwb8VCABKTQ-0-4635547b0d9fe19375aac117534a4d05)
图3-59 导入文件到虚拟机中
8)运行程序。进入Hadoop的bin目录下,执行以下命令,如图3-60所示。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/85_01.jpg?sign=1739411333-0TPKRublYiIFoDCYOJNHCsskUJIY0eTw-0-cc878379ae68f71587a834a322d27548)
图3-60 执行MapReduce程序命令
9)显示wordcount程序运行结果。MapReduce图形化统计界面如图3-61所示。MapReduce统计界面如图3-62所示。
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/85_02.jpg?sign=1739411333-09oiMYPfktyru3SVxRHAsYctOwDoFHBR-0-47939039f62a1748bc18406e386b3de3)
图3-61 MapReduce图形化统计界面
![](https://epubservercos.yuewen.com/1E2B13/17977545601605106/epubprivate/OEBPS/Images/85_03.jpg?sign=1739411333-DAsZV9K4dsgW070NljvLBnPbBkcMN2Fi-0-7bfa61e84dd7fc9d6ee7bd15978ebf8a)
图3-62 MapReduce统计界面