新版API WordCount 小例 及如何导入jar包

WordCount:

简单解析wordcount小例子的代码,对应于新版的API进行处理。

import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.examples.WordCount.TokenizerMapper;
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 {

	/**
	 * @param
	 * @XD 2014-8-16
	 */
	public static class TokenzierMapper extends Mapper<Object,Text,Text,IntWritable>{
		//对于切下的单词赋予出现频数1
		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 对输入单词进行切分
			StringTokenizer itr = new StringTokenizer(value.toString());

			while(itr.hasMoreTokens()){
				word.set(itr.nextToken());
				context.write(word, one);
			}
		}
	}
	public static class IntSumReducer extends 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 value:values){
				sum+=value.get();
			}
			result.set(sum);
			//写入输出
			context.write(key, result);
		}
	}
	public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
		// TODO Auto-generated method stub
		//初始化配置
		Configuration conf = new Configuration();
		Job job = new Job(conf,"word count");
		job.setJarByClass(WordCount.class);

		//设置map,combine,reduce处理
		job.setMapperClass(TokenizerMapper.class);
		job.setReducerClass(IntSumReducer.class);
		job.setCombinerClass(IntSumReducer.class);

		//设置输出格式处理类
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);

		//设置输入输出路径
		FileInputFormat.addInputPath(job, new Path(args[0]));
		FileOutputFormat.setOutputPath(job, new Path(args[1]));

		job.waitForCompletion(true);

		System.out.println("任务名称: "+job.getJobName());
		System.out.println("任务成功: "+(job.isSuccessful()?"Yes":"No"));

	}
}

在eclipse中实现此过程,需要先导入自己hadoop安装目录下面的jar包,eclipse导入jar如下:

1.右击工程的根目录,点击Properties进入Properties。或者选中工程根目录,按Alt-Enter即可。

2.在Properties页面中选中Java Build Path,选中Libraries标签,点击Add External JARs。

3.找到需要添加的jar包,确定即可。

新版API WordCount 小例 及如何导入jar包

时间: 2024-10-07 08:54:49

新版API WordCount 小例 及如何导入jar包的相关文章

MAVEN向本地仓库导入jar包

教程一:  对于官网没有的jar包,maven向本地仓库导入jar包用如下命令 Java代码 mvn install:install-file -DgroupId=包名 -DartifactId=项目名 -Dversion=版本号 -Dpackaging=jar -Dfile=jar文件所在路径 以pinyin4j-2.5.0为例: 1.将pinyin4j-2.5.0.jar文件放在“D:\JAR_LIB”目录下(该目录任意) 2.执行命令: mvn install:install-file  

从外部导入jar包的三种方式

我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作方式:基本步骤式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包. 上面这种方式的操作具有通用性,但是每次创建项

Spring环境搭建之:导入jar包、配置文件名称及放置位置

Spring环境搭建之:导入jar包.配置文件名称及放置位置 现在项目开发中spring框架应用的还是比较多的,自己用的还不太熟练,每次用的时候总配置半天,总有些配置弄错,就找个时间总结以下,方便以后再搭建环境的时候直接拿来用. 以Spring4为例,这里就不提供Spring的下载地址了,官网上很容易下的到. 1.导入相关jar包 建好web项目以后,导入Spring自己的jar包 spring-beans-4.0.0.M2.jar spring-context-4.0.0.M2.jar spr

Java-eclipse导入jar包

Java-eclipse导入jar包 方法一:基本步骤式 右键项目属性,选择Property,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,导入jar包 方法二:用户Jar包式 右键项目属性,选择Property,在弹出的对话框左侧列表中选择 Build Path,选择"Add Library",弹出如下图所示对话框,选择"User Library",然后选择->Next 可以选择已经创建好的用

eclipse中导入jar包

我们在用Eclipse开发程序的时候,经常想要用到第三方的jar包.这时候我们就需要在相应的工程下面导入这个jar包.以下配图说明导入jar包的步骤. 1.右击工程的根目录,点击Properties进入Properties.或者选中工程根目录,按Alt-Enter即可. 2.在Properties页面中选中Java Build Path,选中Libraries标签,点击Add External JARs. 3.找到需要添加的jar包,确定即可. eclipse中导入jar包,布布扣,bubuko

eclipse 导入jar包

我们在用Eclipse开发程序的时候,经常想要用到第三方的jar包.这时候我们就需要在相应的工程下面导入这个jar包.以下配图说明导入jar包的步骤. 1.右击工程的根目录,点击Properties进入Properties.或者选中工程根目录,按Alt-Enter即可. 2.在Properties页面中选中Java Build Path,选中Libraries标签,点击Add External JARs. 3.找到需要添加的jar包,确定即可. 出自:http://blog.csdn.net/j

android studio学习----通过gradle来导入jar包

转载地址:http://www.th7.cn/Program/Android/201507/495477.shtml File->Project Structure 可以打开下面的图: 1.通过gradle配置第三方jar包 我们看到,每个module都有一个build.gradle文件,它其实是对应module的配置文件.关于build.gradle文件中具体内容的含义,我们将在最后一段进行讲解. 我们先来看一下名为app的这个module,它的build.gradle对应的图形界面其实是下面

java项目(java project)如何导入jar包的解决方案列表

右键项目-properties-java build path(左侧菜单)-选择libraries 有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入 一.导入外部包,add external jars...,这种只是与jar包的绝对路径建立链接,并不会拷贝到项目中. 二.导入包,add jars...,这种需要你事先把jar包拷贝到项目中,通过选择项目下的jar,与jar包的相对路径建立链接. 两种方式下导入的包,jar包名称前面的图标会有区别.另外,如果jar包名称前面的

Elicpse新建userLibrary导入jar包时抛出NotFoundException异常

最近刚开始学Struts2.0框架.再导入jar包的时候突然心血来潮.为方便区分jar包的功能,于是想在WEB-INF -> lib 目录下想新建一个struts文件夹,以方便分类查看. 像上图这样子. 再去看web Library的时候,那么问题就来了.使用tomcat8.0,本来这里应该会自动生成的. 这里没有,那我就自己新建一个叫做"struts2"的userlibrary.步骤如下:项目右键-->build path-->configure build pat