一、需求描述
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 Gutenberghttps://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文件