C/C++教程

调用MapReduce对文件中各个单词出现的次数进行统计

本文主要是介绍调用MapReduce对文件中各个单词出现的次数进行统计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、需求描述

Hadoop综合大作业 要求:

1.将待分析的文件(不少于10000英文单词)上传到HDFS。

2.调用MapReduce对文件中各个单词出现的次数进行统计。

3.将统计结果下载本地。

4.写一篇博客描述你的分析过程和分析结果。

本次大作业,我们需要实现的是调用MapReduce对文件中各个单词出现的次数进行统计。要求在Linux系统中实现上述操作。首先要安装Ubuntu系统,然后要配置Java环境,安装JDK。Ubuntu提供了一个健壮,功能丰富的计算环境。

5. 论文提交内容及提交文件的格式:

1)文件名格式:

学号+姓名+班级+大数据期末作业.doc

2)文件内容:

          ① 文件处理截图

          ② 文件MapReduce处理的代码

          ③ 博客完成的截图

          ④ 正文内容小四号字,宋体

二、环境介绍

         在 VitrtualBox 上安装 Ubuntu。在 Ubuntu 中安装 Hadoop,Eclipse。安装 JAVA 环境,下载文件 jdk-8u162-linux-x64.tar.gz。配置 Hadoop 伪分布式。在 Ubuntu软件中心中下载并安装 Eclipse。安装好后,把待分析的文件上传到 HDFS,然后在 Eclipse 中创建MapReduce 项目,创建Java工程,为项目添加需要用到的 JAR包。

三、数据来源及数据上传

      准备一个10000以上单词的txt文件,命名为LanJingXu.txt,并且将文件放入Hadoop文件中

       数据来源:Free eBooks | Project Gutenbergicon-default.png?t=LBL2https://www.gutenberg.org

3.1 10000个单词的LanJingXu.txt文件

 把LanJingXu.txt文件导入Hadoop中

 

四、数据上传结果查看

      4.1 启动Hadoop,使用./bin/hdfs dfs -put LanJingXu.txt inpput命令将LanJingXu.txt文件上传到HDFS

 4.2 使用ls命令查看HDFS input文件时候存在刚刚上传的文件

 

五、数据处理过程的描述

      5.1 安装Ecslipse

 

5.2 安装 Hadoop-Eclipse-Plugin

              5.2.1 使用“unzip -qo ~/下载/hadoop2x-eclipse-plugin-master.zip -d ~/下载”命令   # 将安装包解压到 ~/下载 中

 

  5.2.2 使用“sudo cp ~/下载/hadoop2x-eclipse-plugin-master/release/hadoop-eclipse-plugin-2.6.0.jar /usr/lib/eclipse/plugins/”命令将文件复制到 eclipse 安装目录的 plugins 目录下

  5.2.3 使用“/usr/lib/eclipse/eclipse -clean”命令使插件生效

 5.3 启动Hadoop

使用“sbin/start-dfs.sh”命里启动hadoop

5.4 配置 Hadoop-Eclipse-Plugin

            5.4.1 启动 Eclipse 后就可以在左侧的Project Explorer中看到 DFS Locations(若看到的是 welcome 界面,点击左上角的 x 关闭就可以看到了。

 

  5.4.2 选择 Window 菜单下的 Preference,此时会弹出一个窗体,窗体的左侧会多出 Hadoop Map/Reduce 选项,点击此选项,选择 Hadoop 的安装目录(如/usr/local/hadoop,Ubuntu不好选择目录,直接输入就行)。

 5.4.3 切换 Map/Reduce 开发视图,选择 Window 菜单下选择 Open Perspective -> Other(CentOS 是 Window -> Perspective -> Open Perspective -> Other),弹出一个窗体,从中选择 Map/Reduce 选项即可进行切换。建立与 Hadoop 集群的连接,点击 Eclipse软件右下角的 Map/Reduce Locations 面板,在面板中单击右键,选择 New Hadoop Location。

 5.4.4 在弹出来的 General 选项面板中,General 的设置要与 Hadoop 的配置一致。一般两个 Host 值是一样的,如果是伪分布式,填写 localhost 即可,另外我使用的Hadoop伪分布式配置,设置 fs.defaultFS 为 hdfs://localhost:9000,则 DFS Master 的 Port 要改为 9000。Map/Reduce(V2) Master 的 Port 用默认的即可,Location Name 随意填写。

 5.5.1 点击 File 菜单,选择 New -> Project…:,选择 Map/Reduce Project,点击 Next,填写 Project name 为 WordCount 即可,点击 Finish 就创建好了项目。

 

 5.5.2 接着右键点击刚创建的 WordCount 项目,选择 New -> Class,需要填写两个地方:在 Package 处填写 org.apache.hadoop.examples;在 Name 处填写 WordCount。

 5.5.3 创建 Class 完成后,在 Project 的 src 中就能看到 WordCount.java 这个文件。将如下 WordCount 的代码复制到该文件中。

 

 

5.6 通过 Eclipse 运行 MapReduce

              5.6.1 在运行 MapReduce 程序前,还需要执行一项重要操作(也就是上面提到的通过复制配置文件解决参数设置问题):将 /usr/local/hadoop/etc/hadoop 中将有修改过的配置文件(如伪分布式需要 core-site.xml 和 hdfs-site.xml),以及 log4j.properties 复制到 WordCount 项目下的 src 文件夹(~/workspace/WordCount/src)中:

 5.6.2 点击工具栏中的 Run 图标,或者右键点击 Project Explorer 中的 WordCount.java,选择 Run As -> Run on Hadoop,就可以运行 MapReduce 程序了。不过由于没有指定参数,运行时会提示 “Usage: wordcount “,需要通过Eclipse设定一下运行参数。

 5.6.3 设定参数后,再次运行程序,可以看到运行成功的提示,刷新 DFS Location 后也能看到输出的 output 文件夹,同时也能看到计算出来的数据了。

 5.6.4 把 Java 应用程序打包生成 JAR 包,部署到 Hadoop 平台上运行。现在可以把词 频统计程序放在“/usr/local/hadoop”目录下。在 Eclipse 工作界面左侧的“Package Explorer”面板中,在工程名称“WordCount” 上点击鼠标右键,在弹出的菜单中选择“Export”。

 5.6.5 在该界面中,选择“Runnable JAR file”,然后,点击“Next>”按钮,弹出如下图所 示界面

 5.6.7 在该界面中,“Launch configuration”用于设置生成的 JAR 包被部署启动时运行的 主类,需要在下拉列表中选择刚才配置的类“WordCount-WordCount”。在“Export destination”中需要设置 JAR 包要输出保存到哪个目录,比如,这里设置为 “/usr/local/hadoop/WordCount.jar”。在“Library handling”下面选择“Extract required libraries into generated JAR”。然后,点击“Finish”按钮,在点击“OK”忽略即可

 5.6.8 直接点击界面右下角的“OK”按钮,至此,已经顺利把 WordCount 工程打包生成 了 WordCount.jar。

六、处理结果的下载及命令行展示

            6.1  使用 hadoop jar 命令运行程序

 

 6.2 使用命令打开统计文件,即可查看结果

 

 6.3 将 output 文件夹下载至本地:

 6.4 在本地查看part-r-00000文件

 

这篇关于调用MapReduce对文件中各个单词出现的次数进行统计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!