• 2025年8月19日 星期二

H30501-实验5-WordCount

4 月 12, 2023

一、实验目的

  1. 通过实验掌握基本的MapReduce编程方法;
  2. 掌握用MapReduce解决一些常见的数据处理问题,包括数据去重、数据排序和数据挖掘等。

二、实验仪器设备或材料

  1. Ubuntu 20.0.1
  2. Hadoop 3.3.1(至少完成伪分布模式)
  • JDK 1.8.0_301
  • Eclipse 2019-12(R)

三、实验原理

首先,在Linux系统本地创建两个文件,即文件wordfile1.txt和wordfile2.txt。在实际应用中,这两个文件可能会非常大,会被分布存储到多个节点上。但是,为了简化任务,这里的两个文件只包含几行简单的内容。需要说明的是,针对这两个小数据集样本编写的MapReduce词频统计程序,不作任何修改,就可以用来处理大规模数据集的词频统计。

文件wordfile1.txt的内容如下:

I love Spark

I love Hadoop

文件wordfile2.txt的内容如下:

Hadoop is good

Spark is fast

假设HDFS中有一个/user/hadoop/input文件夹,并且文件夹为空,请把文件wordfile1.txt和wordfile2.txt上传到HDFS中的input文件夹下。现在需要设计一个词频统计程序,统计input文件夹下所有文件中每个单词的出现次数,也就是说,程序应该输出如下形式的结果:

fast  1

good   1

Hadoop   2

I    2

is   2

love   2

Spark   2

四、实验内容与步骤

1.输入

2.处理

(1)Map的处理逻辑

(2)Reduce的处理逻辑

(3)main()测试

3.输出

(1)编译打包

(2)运行jar

五、实验结果与分析

1.创建文件wordfile1和wordfile2两个文件,命令如图1所示。

图1

2.在两个文件中输入一些文本,这里以实验要求文本为要求,回显文件内容如图2所示。

图2

3.在Eclipse中新建一个WordCount的类,然后通过JAVA API编程进行打包(代码可至文末附件下载)。上传到Hadoop服务容器内,代码部分内容如图3所示。

图3

4.通过dfs命令删除Hadoop容器内的input output文件夹,重新创建input文件夹(这里也可通过删除input下所有文件完成),上传wordfile1,wordfile2到input文件夹。最后通过调用本地创建好的Jar包文件读取input文件夹中文件内容进行词频统计,结果输出到output文件夹中(如果已有同名文件夹,会输出失败),过程命令如图4所示。

图4

5.使用cat命令回显output文件夹下的内容,可见成功完成词频统计。如图5所示。

图5

附件下载

Avatar photo

李星海

简介: 2025-今 浙江农林大学 | 2022-今 广州白蓝碗蛋科技有限公司 | 2022-2024 广州商学院 | 2019-2022 广东工贸职业技术学院 | 服务宗旨:心始至客,行亦致远。