MapReduce学习笔记(一)——WordCount环境准备

 实例描述——WordCount

WordCount是一个很经典的MapReduce的例子,hadoop也自带了wordcount的mapreduce的example。wordcount也可说是集群计算中的helloworld。

wordcount是指,统计文件中出现的单词以及每个单词出现的次数。

比如说我们准备一个输入文件,我们可以选择txt格式的文件,我们要统计下面这个文件中每个单词出现的次数。

abc abc abc
ss ss
ttt
kk kk kk kk
tjaf
faf faf

然后我们预期的结果如下,也就是说我们生成的结果文件其内容大致如下所示,因为在mapreduce的过程中,会自动整理成排序的形式(由于map的数据结构),所以实际的结果的单词显示的顺序会与下面所显示的内容顺序不同。

abc 3
ss 2
ttt 1
kk 4
tjaf 1
faf 2

接下来会演示单机模式下的wordcount的编写过程

WordCount

环境准备

IDE推荐使用IDEA pro,准备好maven、hadoop文件,然后配置好hadoop的系统环境变量,jdk1.8。

首先创建一个maven项目,项目相关信息随意。

File -> settings,搜索maven,上面的蓝圈选择maven文件夹,下面的选择好自己的settings.xml。

settings.xml这个xml文件中需要配置好aliyun镜像和localrepository路径这两个内容。至于maven文件,Maven – Welcome to Apache Maven 这里可以下载。

settings文件如下,前几行的那个localRepository记得修改为自己的,默认是C:\Users\xxx\.m2\repository这个路径,xxx要换成自己的电脑的用户名,可以去看看。


C:\Users\xxx\.m2\repositoryorg.mortbay.jettyreleasesalialiSnapshotsalialinexuscentralaliyun mavenhttp://maven.aliyun.com/nexus/content/groups/public/alimavencentralaliyun mavenhttp://maven.aliyun.com/nexus/content/repositoryies/centralnexus-public-snapshotspublic-snapshotshttp://maven.aliyun.com/nexus/content/repositories/snapshots/developmentcentralhttp://centraltruealwaystruealwayscentralhttp://centraltruealwaystruealwayspublic-snapshotspublic-snapshotshttp://public-snapshotsfalsetruealwayspublic-snapshotshttp://public-snapshotsfalsetruealwaysdevelopmentpublic-snapshots

好了,IDEA的配置告一段落,在项目文件中,在根目录下可以看到IDEA自己创建的一个pom.xml文件,它用来存放maven的依赖,也就是需要使用到什么包,都可以写在里面,maven自己会去下载。

在这个示例中,可以将pom.xml修改为如下,换句话说在原来的基础之上将其中标签中的那三个要添加好。复制且只复制中的内容,放到自己的pom.xml中。后去我们导成jar包的时候还需要添加新的


4.0.0com.xunnHDFSClient1.0-SNAPSHOT88org.apache.hadoophadoop-client3.1.3junitjunit4.12org.slf4jslf4j-log4j121.7.30

然后在项目中的src\main\resources下新建一个文件,文件名为log4j.properties,并添加如下代码段,作为log4j的配置信息。

log4j.rootLogger=INFO, stdout  
log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
log4j.appender.logfile=org.apache.log4j.FileAppender  
log4j.appender.logfile.File=target/spring.log  
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

在下图的位置创建package,然后建三个类。

然后,基本工作就准备完毕,接下来可以开始编写Mapper、Reducer和Driver的代码了。详见下一篇文章。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部