在eclipse中编写word count的Java程序打包到虚拟机中运行
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程序打包到虚拟机中运行相关推荐
- 在eclipse使用map reduce编写word count程序生成jar包并在虚拟机运行的步骤
---恢复内容开始--- 1.首先准备一个需要统计的单词文件 word.txt,我们的单词是以空格分开的,统计时按照空格分隔即可 hello hadoop hello yarn hello zooke ...
- 如何使用eclipse编写一个简单的java程序
用eclipse编写一个简单的java程序,输出hello world 在使用eclipse编写程序之前先保证jdk安装的完成,才能正确运行程序 1.打开eclipse,选择工作空间,工作空间就是你新 ...
- java 文件中查找指定的单词,查找指定文本文件中的单词数的Java程序
查找指定文本文件中的单词数的Java程序 1 说明 在此程序中,我们需要找到给定文本文件中出现次数最多的单词.这可以通过使用文件指针以读取模式打开文件来完成.逐行读取文件.一次分割一行并存储在数组中. ...
- c语言 单词变复数_DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数......
导航:网站首页 > DEV-C++中编写了一段C程序,其中设置了用文件进行... 请编一个程序,可以将英语规则名词由单数变成复数... DEV-C++中编写了一段C程序,其中设置了用文件进行.. ...
- 如何在ASP.NET Core中编写自定义日志记录提供程序
目录 介绍 如何实现所需的接口 基础类和附件 FileLoggerProvider具体类及其附件 1. ConfigureLogging() 2. appsettings.json文件 介绍 源代码可 ...
- Eclipse开发工具--使用JDT开发java程序
JDT JDT(Java Development Tools)是Eclipse平台所提供的一个Java程序开发组件,该组件依赖于JDK的支持,并且默认情况下会自动选择一个可以使用的JDK或JRE环境, ...
- java程序阅读题6,阅读以下说明和java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对 - 信管网...
阅读以下说明和Java程序,填补代码中的空缺(1)-(6),将解答填入答题纸的对应栏内. [说明] 很多依托扑克牌进行的游戏都要先洗牌.下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张 ...
- Java程序员在面试中不通过的五个原因
如今正是毕业生找工作的高峰期,那么在面试Java程序员的过程中会出现什么问题呢?有哪些问题是初入职场的Java程序员在面试中最容易犯的呢?下面,我总结了Java程序员在面试中不通过的五个原因,作为大家 ...
- 每个java程序都至少有一个线程给主线程,java程序在主线程中判断各个子线程状态的操作,该如何解决...
java程序在主线程中判断各个子线程状态的操作 每个子线程在队列为空时会wait等待其他线程添加新url到队列,到最后所有子线程都取不到url时也会都wait住,要在主线程中判断如果所有的子线程都是w ...
- java程序并行机制_Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点。A.多线程B.健...
Java语言具有多种优点和特点,下列选项中,______反映了Java程序并行执行机制的特点.A.多线程B.健 更多相关问题 根据句意及首字母完成单词1. -What c__________ is i ...
最新文章
- JSP内置对象-response
- vba给服务器发送消息,使用VBA实现发邮件功能
- 计算机虚拟内存的设置
- 基础练习 杨辉三角形
- 开发HTML5的强大9个开发工具
- WebBrowser介绍——Javascript与C++互操作
- Centos 安装python 3.7 遇到 ModuleNotFoundError: No module named _ctypesmake [install] Error 1(亲测下面的红字内容)
- source insight 函数不能跳到definition_小技能: Windows10突然不能复制粘贴谁搞鬼
- 48个越吃越瘦的诀窍 - 生活至上,美容至尚!
- 【小虫虫】邮购笔记本的注意事项
- Qemu-KVM基本工作原理分析
- [BZOJ3000] Big Number (Stirling公式)
- APIO 2014 回文串(Manacher+后缀自动机+倍增)
- Excel一键给操作内容添加批注作者
- 中控,中控系统,中控会议室
- 通过电阻色环识别(固定)电阻阻值的方法
- docker启动容器指定主机名,网络和ip地址
- Linux利用filename=${fileuser:-filename}设置文档名
- 常用 DOM 方法与属性
- 成语猜猜看小游戏(一)