`
serisboy
  • 浏览: 172912 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

hadoop--mapreduce代码:WordCount

 
阅读更多
package com.hadoop.sample;

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;
import org.apache.hadoop.util.GenericOptionsParser;

public class WordCount {
	//继承mapper接口,设置map的输入类型为<Object,Text>
	//输出类型为<Text,IntWritable>
	public static class Map extends Mapper<Object,Text,Text,IntWritable>{
		//one表示单词出现一次
		private static IntWritable one = new IntWritable(1);
		//word存储切下的单词
		private Text word = new Text();
		public void map(Object key,Text value,Context context) throws IOException,InterruptedException{
			//对输入的行切词
			StringTokenizer st = new StringTokenizer(value.toString());
			while(st.hasMoreTokens()){
				word.set(st.nextToken());//切下的单词存入word
				context.write(word, one);
			}
		}
	}
	//继承reducer接口,设置reduce的输入类型<Text,IntWritable>
	//输出类型为<Text,IntWritable>
	public static class Reduce extends Reducer<Text,IntWritable,Text,IntWritable>{
		//result记录单词的频数
		private static IntWritable result = new IntWritable();
		public void reduce(Text key,Iterable<IntWritable> values,Context context) throws IOException,InterruptedException{
			int sum = 0;
			//对获取的<key,value-list>计算value的和
			for(IntWritable val:values){
				sum += val.get();
			}
			//将频数设置到result
			result.set(sum);
			//收集结果
			context.write(key, result);
		}
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		// TODO Auto-generated method stub
		Configuration conf = new Configuration();
		//检查运行命令
		String[] otherArgs = new GenericOptionsParser(conf,args).getRemainingArgs();
		if(otherArgs.length != 2){
			System.err.println("Usage WordCount <int> <out>");
			System.exit(2);
		}
		//配置作业名
		Job job = new Job(conf,"word count");
		//配置作业各个类
		job.setJarByClass(WordCount.class);
		job.setMapperClass(Map.class);
		job.setCombinerClass(Reduce.class);
		job.setReducerClass(Reduce.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);
		FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
		FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
		System.exit(job.waitForCompletion(true) ? 0 : 1);
	}

}
分享到:
评论
1 楼 wangyayun666 2016-03-16  
不错,不错,学习了,我的居然运行起来了,太神奇了,之前报了一个空指针异常,说是没有exe文件,后来解决了,参考如下:http://www.dmyc8.com/thread-1687-1-1.html

相关推荐

    hadoop-mapreduce-examples-2.7.1-sources.jar

    hadoop中的demo,wordcount列子用到的JAR包 用法: # 在容器里运行WordCount程序,该程序需要2个参数...hadoop jar hadoop-mapreduce-examples-2.7.1-sources.jar org.apache.hadoop.examples.WordCount input output

    03-Hadoop-MapReduce.docx

    MapReduce是Hadoop生态系统中的核心组件之一,主要用于处理和生成大规模数据集。它的设计目标是简化分布式计算,使得开发者能够专注于编写业务逻辑,而无需过多关注底层分布式系统的复杂性。 **1. MapReduce定义** ...

    MapReduce wordcount demo

    用java的MapReduce写了个demo,用于计算文档单词出现个数

    hadoop-3.2.4.tar.gz

    为了测试Hadoop集群,你可以尝试运行一些示例程序,如WordCount,这是一个经典的MapReduce程序,用于统计文本文件中的单词出现次数。 总之,Hadoop 3.2.4提供了一个强大且可靠的分布式计算平台,适用于大数据分析、...

    Hadoop mapreduce实现wordcount

    【标题】Hadoop MapReduce 实现 WordCount MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的...

    hadoop-2.7.3.tar.gz 下载 hadoop tar 包下载

    在下载hadoop-2.7.3.tar.gz这个压缩包后,用户可以解压得到Hadoop的源代码、配置文件、可执行二进制文件等。解压命令通常是在终端输入`tar -zxvf hadoop-2.7.3.tar.gz`。解压后,用户需要根据自己的系统环境进行适当...

    hadoop-3.1.0.rar windows 环境依赖

    8. **运行示例程序**:你可以尝试运行Hadoop自带的示例程序,如WordCount,来测试你的安装是否成功。 在Windows环境中,由于缺少原生支持,你可能需要使用像cygwin这样的模拟Unix环境,或者使用像Scoop这样的包管理...

    hadoop -1.2.1-jar(全)

    4. **hadoop-examples-1.2.1.jar**:此JAR包提供了几个示例程序,演示了如何使用Hadoop MapReduce进行简单的数据处理任务,如WordCount、PiEstimator等,这些示例对于初学者理解Hadoop的工作原理非常有帮助。...

    大数据 hadoop-3.1.3 linux 安装包

    为了验证Hadoop安装成功,可以运行一些简单的测试,如`hadoop fs -ls /`检查HDFS根目录,或者使用WordCount示例程序处理数据。Hadoop还提供了丰富的工具,如HBase(分布式数据库)、Hive(数据仓库工具)和Pig(数据...

    Hadoop原理与技术MapReduce实验

    (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件放到hdfs上 (2):运行MapReduce (5):查看运行结果 (6)网页上查看MapReduce任务 2.矩阵相乘实验(matrix) (1)写matrix代码并把...

    hadoop-2.7.5 windows环境

    hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /input /output ``` 3. **查看结果**: 使用`hadoop fs -cat`命令查看输出结果,如`hadoop fs -cat /output/*`。 以上就是...

    hadoop-1.2.1运行WordCount

    ### Hadoop-1.2.1 运行WordCount实例详解 #### 一、环境准备与搭建 在开始运行WordCount实例之前,首先确保已经按照之前的步骤完成了Hadoop-1.2.1环境的搭建。这包括但不限于安装JDK、配置Hadoop环境变量以及设置...

    hadoop-2.6.0-cdh5.7.0.tar.gz

    接着,启动Hadoop服务,进行格式化NameNode,最后测试Hadoop集群是否正常运行,如通过运行WordCount示例来验证。 与Hadoop相关的标签“kafka”提到了另一个大数据处理组件——Apache Kafka。Kafka是一个分布式流...

    hadoop-2.7.4-with-windows.tar.gz

    用户只需简单地解压这个文件到本地磁盘,即可解决本地运行MapReduce程序时无法连接到Hadoop客户端的问题。这通常涉及到Hadoop客户端的配置、依赖库的兼容性以及Java运行环境的设置。 Hadoop是Apache软件基金会的一...

    hadoop-2.7.7编译

    hadoop fs -put examples/src/main/java/org/apache/hadoop/examples/WordCount /wordcount ``` 3. 编译并运行WordCount: ```bash hadoop jar build/hadoop-examples-2.7.7.jar wordcount /wordcount /output ``` 4...

    hadoop-2.7.7 .tar.gz

    - 运行简单的MapReduce程序,如WordCount,验证集群功能。 5. 标签“大数据”提示了Hadoop在大数据处理中的应用。大数据处理包括数据采集、预处理、存储、分析和可视化等步骤。Hadoop通过其分布式特性,可以高效地...

    hadoop-3.1.4.tar.gz

    7. **测试运行**:通过`hadoop fs -ls`命令检查HDFS是否正常工作,使用WordCount示例验证MapReduce功能。 四、Hadoop的使用场景与最佳实践 Hadoop广泛应用于数据分析、日志处理、推荐系统、机器学习等领域。在使用...

    hadoop-2.9.1.tar.gz

    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.1.jar wordcount /input /output ``` 总结,Hadoop 2.9.1在Linux环境的安装和使用涉及多个步骤,包括环境准备、安装、配置、启动...

    hadoop集群配置及mapreduce开发手册

    ### Hadoop集群配置及MapReduce开发手册知识点梳理 #### 一、Hadoop集群配置说明 ##### 1.1 环境说明 本手册适用于基于CentOS 5系统的Hadoop集群配置,具体环境配置如下: - **操作系统**:CentOS 5 - **JDK版本...

    eclipse运行hadoop2.7.3程序依赖的jar包

    6. **测试程序**:编写一个简单的Hadoop MapReduce程序,例如WordCount示例,来测试你的环境是否配置正确。MapReduce程序通常包括Mapper类、Reducer类以及主类,主类负责提交作业到集群。 7. **运行与调试**:在...

Global site tag (gtag.js) - Google Analytics