1.在eclipse中创建maven项目
【file】-【new】-【Maven project】


2.在pom.xml中添加依赖

<dependencies><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-common</artifactId><version>2.7.3</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>2.6.0</version>
</dependency><!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core -->
<dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>2.6.0</version>
</dependency>

3.在WordCount_test .java中编写Word Count程序

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_test {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_test.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]));System.exit(job.waitForCompletion(true) ? 0 : 1);}
}

4.可以在本地运行下

5.打包程序
点击项目,右键选择export

选择JAR file-next,如图选择打包地址和命名包名

6.在虚拟机里用包进行程序运行
在本地找到包然后将包放到虚拟机中

输入命令hadoop jar Hadoop.jar WordCount_test /word.txt /output123运行,Hadoop.jar是包名,WordCount_test 是主类名,/word.txt 是要统计词数的hdfs文件(需事先传上去),/output123是存放运行结果的路径



运行结果:


本实验到此结束。

在eclipse中编写word count的Java程序打包到虚拟机中运行相关推荐

  1. 在eclipse使用map reduce编写word count程序生成jar包并在虚拟机运行的步骤

    ---恢复内容开始--- 1.首先准备一个需要统计的单词文件 word.txt,我们的单词是以空格分开的,统计时按照空格分隔即可 hello hadoop hello yarn hello zooke ...

  2. 如何使用eclipse编写一个简单的java程序

    用eclipse编写一个简单的java程序,输出hello world 在使用eclipse编写程序之前先保证jdk安装的完成,才能正确运行程序 1.打开eclipse,选择工作空间,工作空间就是你新 ...

  3. java 文件中查找指定的单词,查找指定文本文件中的单词数的Java程序

    查找指定文本文件中的单词数的Java程序 1 说明 在此程序中,我们需要找到给定文本文件中出现次数最多的单词.这可以通过使用文件指针以读取模式打开文件来完成.逐行读取文件.一次分割一行并存储在数组中. ...

  4. c语言 单词变复数_DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数......

    导航:网站首页 > DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数... DEV-C++中编写了一段C程序,其中设置了用文件进行.. ...

  5. 如何在ASP.NET Core中编写自定义日志记录提供程序

    目录 介绍 如何实现所需的接口 基础类和附件 FileLoggerProvider具体类及其附件 1. ConfigureLogging() 2. appsettings.json文件 介绍 源代码可 ...

  6. Eclipse开发工具--使用JDT开发java程序

    JDT JDT(Java Development Tools)是Eclipse平台所提供的一个Java程序开发组件,该组件依赖于JDK的支持,并且默认情况下会自动选择一个可以使用的JDK或JRE环境, ...

  7. java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...

    阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...

  8. Java程序员在面试中不通过的五个原因

    如今正是毕业生找工作的高峰期,那么在面试Java程序员的过程中会出现什么问题呢?有哪些问题是初入职场的Java程序员在面试中最容易犯的呢?下面,我总结了Java程序员在面试中不通过的五个原因,作为大家 ...

  9. 每个java程序都至少有一个线程给主线程,java程序在主线程中判断各个子线程状态的操作,该如何解决...

    java程序在主线程中判断各个子线程状态的操作 每个子线程在队列为空时会wait等待其他线程添加新url到队列,到最后所有子线程都取不到url时也会都wait住,要在主线程中判断如果所有的子线程都是w ...

  10. java程序并行机制_Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点。A.多线程B.健...

    Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点.A.多线程B.健 更多相关问题 根据句意及首字母完成单词1. -What c__________ is i ...

最新文章

  1. JSP内置对象-response
  2. vba给服务器发送消息,使用VBA实现发邮件功能
  3. 计算机虚拟内存的设置
  4. 基础练习 杨辉三角形
  5. 开发HTML5的强大9个开发工具
  6. WebBrowser介绍——Javascript与C++互操作
  7. Centos 安装python 3.7 遇到 ModuleNotFoundError: No module named _ctypesmake [install] Error 1(亲测下面的红字内容)
  8. source insight 函数不能跳到definition_小技能: Windows10突然不能复制粘贴谁搞鬼
  9. 48个越吃越瘦的诀窍 - 生活至上,美容至尚!
  10. 【小虫虫】邮购笔记本的注意事项
  11. Qemu-KVM基本工作原理分析
  12. [BZOJ3000] Big Number (Stirling公式)
  13. APIO 2014 回文串(Manacher+后缀自动机+倍增)
  14. Excel一键给操作内容添加批注作者
  15. 中控,中控系统,中控会议室
  16. 通过电阻色环识别(固定)电阻阻值的方法
  17. docker启动容器指定主机名,网络和ip地址
  18. Linux利用filename=${fileuser:-filename}设置文档名
  19. 常用 DOM 方法与属性
  20. 成语猜猜看小游戏(一)

热门文章

  1. Android短信发送,监听,及其工具类封装
  2. soliworks三维机柜布局(二)创建设备位置
  3. JavaScript实现富文本编辑器
  4. DS1302时钟芯片的使用
  5. gcc 编译隐藏符号
  6. java数组的实例化
  7. android 中文转首字母,Android开发 - 汉字转拼音首字母
  8. Unity语音合成-初识有道语音合成
  9. 查看计算机温度指令,如何查看电脑CPU的温度?查看CPU温度的两种方法
  10. Vue项目设置局域网链接访问