`

MapReduce编程模板

 
阅读更多

 

 

 

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
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.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.mapreduce.lib.partition.HashPartitioner;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class ModuleMapReduce extends Configured implements Tool {

	static class ModuleMapper extends
			Mapper<LongWritable, Text, Text, IntWritable> {
		@Override
		protected void setup(
				Mapper<LongWritable, Text, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.setup(context);
		}

		@Override
		protected void map(LongWritable key, Text value,
				Mapper<LongWritable, Text, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.map(key, value, context);
		}

		@Override
		protected void cleanup(
				Mapper<LongWritable, Text, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.cleanup(context);
		}

		@Override
		public void run(
				Mapper<LongWritable, Text, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.run(context);
		}

	}

	static class ModuleReducer extends
			Reducer<Text, IntWritable, Text, IntWritable> {
		@Override
		protected void setup(
				Reducer<Text, IntWritable, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.setup(context);
		}

		@Override
		protected void reduce(Text key, Iterable<IntWritable> values,
				Reducer<Text, IntWritable, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.reduce(key, values, context);
		}

		@Override
		protected void cleanup(
				Reducer<Text, IntWritable, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.cleanup(context);
		}

		@Override
		public void run(
				Reducer<Text, IntWritable, Text, IntWritable>.Context context)
				throws IOException, InterruptedException {
			// TODO Auto-generated method stub
			super.run(context);
		}

	}

	@Override
	public int run(String[] args) throws Exception {
		if (checkArgs(args) != 0)
			return checkArgs(args);

		Job job = getJob();
		//set input/output path
		FileInputFormat.addInputPath(job, new Path(args[0]));
		FileOutputFormat.setOutputPath(job, new Path(args[1]));
		// set run jar class when package need
		job.setJarByClass(ModuleMapper.class);
		//set map info
		job.setMapperClass(ModuleMapper.class);
		job.setInputFormatClass(TextInputFormat.class);
		job.setMapOutputKeyClass(Text.class);
		job.setMapOutputValueClass(LongWritable.class);
		//set partition
		job.setPartitionerClass(HashPartitioner.class);
		job.setNumReduceTasks(1);
		//set reduce info
		job.setReducerClass(ModuleReducer.class);
		job.setOutputFormatClass(TextOutputFormat.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);

		return job.waitForCompletion(true) ? 0 : 1;
	}

	private Configuration getConfiguration() {
		Configuration conf = new Configuration();
		return conf;
	}

	private Job getJob() throws IOException {
		Configuration conf = getConfiguration();
		Job job = new Job(conf, ModuleMapReduce.class.getSimpleName());
		return job;
	}

	private int checkArgs(String[] args) {
		if (args.length != 2) {
			System.err.println("args error");
			return 1;
		}
		return 0;
	}

	public static void main(String[] args) throws Exception {
		int exitCode = ToolRunner.run(new ModuleMapReduce(), args);
		System.exit(exitCode);
	}
}

 

分享到:
评论

相关推荐

    mapreduce模板.txt

    MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程...

    MapReduce设计模式

    MapReduce作为一种分布式海量数据处理的编程框架,已经得到业界的...《MapReduce设计模式》面向中高级MapReduce开发者,涵盖了绝大部分MapReduce编程可能面对的场景,相信初学者和专家同样可以在本书中得到一些启示。

    配置MapReduce环境.pdf

    接着,你需要修改`pom.xml`文件,添加必要的依赖,这些依赖通常包括Hadoop的相关库,例如`hadoop-client`,以支持MapReduce编程。 编写WordCount程序是MapReduce初学者常见的练习。WordCount示例程序展示了...

    实验3模板-MapReduce实验

    实验3的目的是深入理解MapReduce模型,这是一种在大数据处理中广泛使用的编程模型,由Google公司提出。MapReduce的核心思想是将复杂的大规模数据处理任务分解为两个主要阶段:Map(映射)和Reduce(规约),并通过...

    eclipse的mapreduce插件

    8. **源码分析**:通过插件,开发者可以查看和理解Hadoop自带的MapReduce示例源代码,这对于学习和理解MapReduce编程模型非常有帮助。 在实际开发过程中,配合Eclipse MapReduce插件,开发者还可以使用Maven或者...

    Hadoop的Eclipse插件,MapReduce

    针对“Hadoop的Eclipse插件,MapReduce”这个主题,我们将深入探讨Hadoop、Eclipse插件以及它们如何在MapReduce编程中发挥作用。 Hadoop是Apache软件基金会的一个项目,其核心设计包括两个主要组件:HDFS(Hadoop...

    大数据概论课程设计-基于 KNN 与 MapReduce 的电影网站用户性别预测(附课程设计报告)

    2.掌握以 MapReduce 编程实现 KNN 算法 3.掌握以 MapReduce 编程实现 KNN 分类器评价 三、项目分析 什么有个性化的电影推荐服务?举个最简单的例子,不同性别的人偏爱电影的类型会有所不同,如大部分男生可能比较...

    hadoop eclipse mapreduce 下开发所有需要用到的 JAR 包

    MapReduce是一种编程模型,用于大规模数据集的并行处理。它将大数据任务分解为两个主要阶段:映射(Map)和化简(Reduce)。Eclipse与Hadoop的集成使得开发者可以在本地环境中编写、测试和调试MapReduce作业,然后再...

    MapReduce-master_delphi_

    Delphi版本的MapReduce可能会提供一个可重用的Reduce模板,允许用户定义自己的聚合函数。 4. **Delphi语言特性**: Delphi是一种面向对象的编程语言,以其快速的编译器和高效的代码著称。在实现MapReduce时,...

    MR应用程序模板

    标题中的“MR应用程序模板”指的是MapReduce程序模板,这是一个在大数据处理领域中广泛使用的编程模型。MapReduce由Google提出,主要用于大规模数据集的并行计算。在这个模型中,数据处理被分为两个主要阶段:Map...

    matlab20行代码-MapReduce-Based-Deep-Learning:2013年NerveCloud的秋季云计算项目小组:基于M

    标题中的“matlab20行代码-MapReduce-Based-Deep-Learning”暗示了一个使用MATLAB实现的项目,该项目是基于MapReduce模型进行深度学习的。MapReduce是一种分布式计算框架,常用于处理和生成大规模数据集,而深度学习...

    HadoopMapReduce:数据集链接的Hadoop MapReduce实践问题

    描述中提到的“Template减少边数据联接”可能是指一种优化MapReduce作业的方法,即使用模板来减少数据连接的开销。在处理大量数据时,传统的全连接方法可能导致不必要的网络传输和计算资源浪费。因此,通过模板或...

    map/reduce template

    标题中的“map/reduce template”指的是MapReduce编程模型的一个模板或框架,它是Apache Hadoop项目的核心部分,用于处理和生成大数据集。MapReduce的工作原理分为两个主要阶段:Map阶段和Reduce阶段,它允许程序员...

    大数据面试宝典+简历模板

    2. **Hadoop生态体系**:深入理解Hadoop的架构,如HDFS(分布式文件系统)的工作原理,MapReduce编程模型,以及YARN资源调度器的角色。 3. **数据存储与处理**:涉及HBase、Cassandra等NoSQL数据库,以及Hive、Pig...

    月薪过万的简历模板.zip

    对于转向Hadoop的Java开发者,简历应突出Hadoop生态系统中的经验,例如HDFS、MapReduce、HBase、Hive等组件的使用,以及数据处理和大数据分析能力。 4. **.Net程序员简历模板**: .Net程序员的简历应包含对.NET ...

    大数据简历--模板.pdf

    2. **MapReduce编程**:MapReduce是Hadoop处理数据的主要方式,工程师能够根据业务需求完成MapReduce编程,意味着他们能将复杂任务分解成可并行执行的map和reduce阶段,处理大规模数据。 3. **Hive数据仓库**:Hive...

    Hadoop入门程序java源码

    它借鉴了Google的MapReduce编程模型和GFS(Google文件系统)的概念,旨在实现数据的高容错性和可扩展性。 这个“Hadoop入门程序java源码”是为初学者准备的,目的是帮助他们快速掌握如何在Hadoop环境中编写和运行...

    大数据开发工程师简历模板.doc

    1. 大数据开发技术栈:这个工程师擅长使用 Hadoop 分布式计算框架、MapReduce、Storm、Spark 等大数据处理技术,并且熟悉 Linux/Unix 环境、Java、Python、Shell 等编程语言。 2. 分布式存储技术:这个工程师熟悉 ...

    大数据综合实验,基于mapreduce实现的成绩分析系统,引入hadoop作云存储+源代码+文档说明

    1、资源内容:大数据综合实验,基于mapreduce的成绩分析系统,引入hadoop作云存储+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过...

    实验报告模板 - 大数据应用-实验五.docx

    本次实验是关于大数据应用的MapReduce初级编程实践,主要目的是让学生掌握MapReduce的基本编程方法,以及利用MapReduce解决实际的数据处理问题,包括数据去重、数据排序和信息挖掘。实验在Linux环境下进行,具体配置...

Global site tag (gtag.js) - Google Analytics