一、启动Hadoop

  如果还没有安装可以参考文章:Win10下安装Hadoop2.7.3
  切换到 ……\hadoop-2.7.3\sbin 下,运行命令 .\start-dfs.cmd
  没有报错一般就是正常启动,也可以在浏览器中输入 http://localhost:50070 查看Hadoop 的相关信息。

二、在IDEA中运行程序
  1. 新建Maven项目

      GroupId 是项目唯一标识符,一般分为三段,域名.公司/组织.子项目名 ,域名一般有cn(china),org(非营利组织),com(商业组织),ArtifacrId 即项目名。

      点击 Next ,这里一般不需要做改动。

      之后点击 Next,新建项目一般会询问是否自动导入包,可以选择 Enable Auto-Import。
  2. 导入项目依赖库,在 pom.xml 中导入以下依赖,会自动进行下载导入。
 <dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-common</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-yarn-client</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.7.3</version></dependency></dependencies><build><finalName>${project.artifactId}</finalName></build>
  1. 导入项目,WordCount源代码在官网(http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html#Example:_WordCount_v1.0)有,可以直接复制。
    在 src/main/java 下新建Package WordCount,再建class ,命名 WordCount,复制代码,因为源码是中输入输出文件路径是以 args 参数给出的,如果需要直接运行可以更改 args[0]为自定义的输入文件路径、args[1]为输出文件路径。最后点击右键选择 Run ‘WordCount.main()’ 即可。
package WordCount;import java.io.IOException;
import java.util.StringTokenizer;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class WordCount {public static class TokenizerMapperextends Mapper<Object, Text, Text, IntWritable>{private final static IntWritable one = new IntWritable(1);private Text word = new Text();public void map(Object key, Text value, Context context) throws IOException, InterruptedException {StringTokenizer itr = new StringTokenizer(value.toString());while (itr.hasMoreTokens()) {word.set(itr.nextToken());context.write(word, one);}}}public static class IntSumReducerextends Reducer<Text,IntWritable,Text,IntWritable> {private IntWritable result = new IntWritable();public void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, InterruptedException {int sum = 0;for (IntWritable val : values) {sum += val.get();}result.set(sum);context.write(key, result);}}public static void main(String[] args) throws Exception {Configuration conf = new Configuration();Job job = Job.getInstance(conf, "word count");job.setJarByClass(WordCount.class);job.setMapperClass(TokenizerMapper.class);job.setCombinerClass(IntSumReducer.class);job.setReducerClass(IntSumReducer.class);job.setOutputKeyClass(Text.class);job.setOutputValueClass(IntWritable.class);
//        FileInputFormat.addInputPath(job, new Path(args[0]));
//        FileOutputFormat.setOutputPath(job, new Path(args[1]));FileInputFormat.addInputPath(job, new Path("F:\\data\\input\\countword.txt"));FileOutputFormat.setOutputPath(job, new Path("F:\\data\\output\\countword"));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}
  1. 输入数据
Hello    World   Bye World   Summer  Summer
  1. 输出数据
Bye  1
Hello   1
Summer  2
World   2

参考文章:【1】第一个MapReduce程序——WordCount | 神奕的博客
     【2】Win10+hadoop+idea 运行wordcount - Fasdfg12的博客
     【3】【Hadoop】Windows 10 在Intellij IEDA本地运行Hadoop MapReduce实例 - m0_37324825的博客
     【4】Apache Hadoop 3.2.1 – MapReduce Tutorial

win10 + hadoop2.7.3 + idea 运行第一个MapReduce项目:WordCount相关推荐

  1. Hadoop学习全程记录——在Eclipse中运行第一个MapReduce程序

    网友分享,拿来共享一下 这是Hadoop学习全程记录第2篇,在这篇里我将介绍一下如何在Eclipse下写第一个MapReduce程序. 新说明一下我的开发环境: 操作系统:在windows下使用wub ...

  2. Docker Desktop 如何运行第一个 Docker 项目

    Docker Desktop 安装后的界面是这样的. 你可能会有点困惑,如何运行第一个 Docker 项目. 其实上面的界面中已经告诉你运行的命令行工具了: docker run -d -p 80:8 ...

  3. 第一个MapReduce程序-------WordCount

    本关任务 词频统计是最能体现MapReduce思想的程序,结构简单,上手容易. 词频统计的大致功能是:统计单个或者多个文本文件中每个单词出现的次数,并将每个单词及其出现频率按照<k,v>键 ...

  4. 菜鸟运行第一个vue项目记录

    近期打算着手重构现有的测试平台,由于现在用的平台是layui+flask+uwsgi+nginx框架大家都已经比较熟悉了.所以在新平台选型时本着让大家多接触新东西.新挑战的原则.平台重构选用的框架为v ...

  5. IDEA-第一个Javaweb项目

    配置Tomcat服务器: 下载(略,附地址) 地址:https://tomcat.apache.org/ 以apache-tomcat-7.0.73为例 启动Tomcat 找到apache-tomca ...

  6. 【python爬虫】Pycharm+Scrapy+win10搭建scrapy开发环境+运行一个Demo

    准备工作 基础环境准备 win10 pycharm python3(同时保证有pip环境) scrapy环境准备 打开网址https://www.lfd.uci.edu/~gohlke/pythonl ...

  7. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  8. HDFS设计思路,HDFS使用,查看集群状态,HDFS,HDFS上传文件,HDFS下载文件,yarn web管理界面信息查看,运行一个mapreduce程序,mapreduce的demo...

    26 集群使用初步 HDFS的设计思路 l 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: l 在大数据系统中作用: 为各类分布式 ...

  9. 关于华为DevEco studio2.0的安装和运行第一个hello world的文章

    华为鸿蒙操作系统与2020年9月,将其源代码公开后,就学习了如何下载开发工具DevEco Studio2.0和安装,运行第一个hell worl!,这也是每一个程序员在熟悉新的技术所必须经历的过程. ...

最新文章

  1. [Swift]NSString、NSData、Base64互转
  2. GO 语言websocket编程
  3. 想找一个写Wiki的工具
  4. 利用一维数组输出杨辉三角
  5. php设置mysql 编码_php怎么设置mysql编码?
  6. 微服务“新秀”之Service Mesh
  7. 小米获京东自营安卓平板销量冠军 小米平板5 Pro全版本闪降100元
  8. EularProject 39:给周长推断构成直角三角形个数
  9. php 生产环境 测试环境 同步,开发 RoR PHP Project,测试环境、生产环境部署相关问题...
  10. 好用的文件对比工具Beyond Compare 4 for Mac 4.4.2
  11. 终极分类器(识别器),一个人工智能的美好愿景
  12. JAVA实现度分秒单位换算
  13. paraview编译
  14. php微信卡券创建、生成二维码等
  15. Android 和 Java 性能优化最佳实践
  16. ubuntu16 解决机箱前置耳机无声
  17. 社旗一高2021高考成绩查询,2021年九师联盟:河南/山西省高三年级下学期5月联考分数线公布!...
  18. 《招标投标法》和《招标投标实施条例》有什么关系?
  19. newman工具的运用
  20. 装X利器:做一个Python爬虫小工具——图片下载器

热门文章

  1. 腾讯视频首页导航栏【鼠标移动切换导航(静态数据)】
  2. BoardGame.io 五子棋(一)
  3. AD进行PCB拼板设计
  4. css3动画实现------利用长图片资源(jpg png 等)实现帧动画
  5. overload和overide的区别
  6. Kotlin set集合去重,获取元素可变set集合,set与list转换
  7. 用java做的免费投票器/软件/工具 可定制
  8. 什么是S参数?它有哪些主要类型?
  9. php制作特效文字,css实现字体特效
  10. Kontent Machine英文SEO文章自动采集生成软件