MapReduce程序快速入门之查找相同字母组成的字谜

  找出相同单词的所有单词。现在,是拿取部分数据集(如下)来完成本项目。

项目需求

一本英文书籍包含成千上万个单词或者短语,现在我们需要在大量的单词中,找出相同字母组成的所有anagrams(字谜)。

思路分析

基于以上需求,我们通过以下几步完成:

1、在 Map 阶段,对每个word(单词)按字母进行排序生成sortedWord,然后输出key/value键值对(sortedWord,word)。

2、在 Reduce 阶段,统计出每组相同字母组成的所有anagrams(字谜)。

1 首先,打开MyEclipse,

在com.dajiangtai.hadoop.test包下,新建Anagram类。添加main方法。

2 、在如下文件夹下,新建anagram文件夹

3 上传数据源anagram.txt

在anagram文件夹的位置,右键,upload fles to DFS,

4 、编写Anagram.java里的代码。见Anagram.java.txt

代码编写完成后,然后就可以进行Run as ->  1 java application 。

刷新后,如下。

5 、接下来,点击part-r-00000(186.1 kb,r3),则出现。

那么,此刻,在本地上已经成功运行。

6 、现在,需要到集群上去成功运行,这该怎么做呢?

Hadoop   ->   Export    ->   Export,

Java   ->    JAR  file  ->   next

7 、因为,在hadoop里,这些依赖的架包是存在的,所以我们就不需要再多此一举再打包了。

为架包取一个名称,为anagram.jar,先在D盘新建文件夹JAR,存放在D:\JAR\anagram.jar,点击finish。

8、 接下来,用xshell来连接CentOS。

9 、rz,打开D:\JAR\anagram.jar ,上传至CentOS

10、执行命令

hadoop  jar  anagram.jar  com.dajiangtai.hadoop.test.Anagram  /anagram/  /anagram/out/

11、 查看结果

hadoop  fs  -text  /anagram/out/part-r-00000

时间: 2024-08-05 07:06:05

MapReduce程序快速入门之查找相同字母组成的字谜的相关文章

Gradle用户指南(章10:Web应用程序快速入门)

Gradle用户指南(章10:Web应用程序快速入门) 本章正在完善中..... 本章介绍gradle对web应用程序的支持.Gradle为web应用程序开发提供了两个插件:War插件和Jetty插件.War插件扩展了java插件并且能为你的项目构建一个war包.Jetty插件扩展了War插件并且提供了发布你的web项目到Jetty容器中的功能. 构建一个War文件 构建War文件,你需要在项目中添加War插件. 注意:你可以在gradle发布库和源文件的samples/webApplicati

使用NSIS制作Windows安装程序快速入门

使用NSIS制作Windows安装程序快速入门 这里使用的NSIS版本为3.04,HM NIS Edit版本为2.0.3. 制作安装程序的过程: 确定安装的功能和界面元素 编写 NSIS 脚本 使用 NSIS 提供的 makensis 或者 makensisw 程序,将步骤 2 编写的脚本编译成可执行的安装程序(点击HM NIS Edit编译按钮) 配置使用 NSIS 的环境 安装 NSIS 安装脚本编辑工具 HM NIS Edit 也可以使用VS Code安装NSIS脚本插件 使用HM NIS

Bmob 开发Android程序快速入门--小demo

注册Bmob帐号 在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名.邮箱.设置密码,确认后到你的邮箱激活Bmob账户,你就可以用Bmob轻松开发应用了. 网站后台创建应用 登录账号进入bmob后台后,点击后台界面左上角“创建应用”,在弹出框输入你应用的名称,然后确认,你就拥有了一个等待开发的应用. 获取应用密钥和下载SDK 选择你要开发的应用,点击该应用下方对应的“应用密钥” 在跳转页面,获取Application

hadoop实战项目:查找相同字母组成的字谜

前面我们学习了MapReduce编程思想和编程示例,那么本节课程同学们一起操练操练,动手完成下面的项目. 项目需求 一本英文书籍包含成千上万个单词或者短语,现在我们需要在大量的单词中,找出相同字母组成的所有anagrams(字谜). 数据集 下面是一本英文书籍截取的一部分单词内容.猛戳此链接下载数据集 initiate initiated initiates initiating initiation initiations initiative initiatives initiator in

查找相同字母组成的字谜

数据集导入HDFS 通过命令行访问刚刚上传至HDFS的数据集 [[email protected] hadoop-2.6.0]$ bin/hdfs dfs -ls /anagram/ MapReduce程序编译及运行: 第一步:在 Map 阶段,对每个word(单词)按字母进行排序生成sortedWord,然后输出key/value键值对(sortedWord,word). //写Map过程 public static class Anagramsmapper extends Mapper<Lo

Gradle 教程说明 用户指南 第10章 Web应用程序----快速入门

本章是一项正在进行的工作 本章介绍Web应用程序的Gradle支持.Gradle 为Web应用程序提供了两个插件:War插件和Jetty插件. War插件扩展了Java插件来构建你的项目WAR文件. Jetty插件扩展了War的插件,让你可以把你的Web应用程序部署到一个嵌入式的Jetty Web容器. 本章的示例程序:samples/webApplication/quickstart 10.1 构建一个WAR文件 要构建一个WAR文件,需要应用war 插件. 例,war插件 build.gra

程序员带你十天快速入门Python,玩转电脑软件开发(二)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群538742639.群马上就满了,名额不多. 上节课主要讲解了以下内容: 为什么学习Pyth

程序员带你学习安卓开发,十天快速入门-基础知识(四)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 本系列课程是.Net程序员学习安卓开发系列课程. 下面是前三次课程列表: 程序员带你学习安卓开发,十天快速入门-安卓学习必要性 程序员带你学习安卓开发,十天快速入门-开发工具配置学习 程序员带你学习安卓开发,十天快速入-对比C#学习java语法 为了大家系统有效的快速入门安卓开发,推荐

程序员带你十天快速入门Python,玩转电脑软件开发(三)

声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群538742639.群马上就满了,名额不多. 这是高级程序员快速入门Python语言课程.助你快速学习Python语言.这是第三课. 程序员带你十天快速入门Python,玩转电脑软件开发(一) 程序员带你十天快速入门Python,玩转电脑软件开发(二) 因技术知识连贯性,还没有学习前两课的同学,建议点