代码如下:
import java.io.IOException; import java.util.StringTokenizer; 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.util.Tool; import org.apache.hadoop.util.ToolRunner; public class WordCountNew extends Configured implements Tool{ public static class WordCountReduceMapper extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); @Override protected void map(LongWritable key, Text value, Context context)throws IOException, InterruptedException { // 读取一行数据 String line = value.toString(); // 用空格分割成单词 StringTokenizer st = new StringTokenizer(line); // 将单词与数量输出 while (st.hasMoreTokens()) { word.set(st.nextToken()); context.write(word, one); } } } public static class WordCountReduce extends Reducer<Text, IntWritable, Text, IntWritable> { private IntWritable result = new IntWritable(); /** * 相同key的数据会一起传送给reduce,因此reduce阶段中的key值是相同,values 可以是多个,其值都是1 */ @Override protected void reduce(Text key, Iterable<IntWritable> values,Context context) throws IOException, InterruptedException { int sum = 0; // 通过循环,得出values的和 for (IntWritable value : values) { sum += value.get(); } result.set(sum); context.write(key, result); } } @Override public int run(String[] args) throws Exception { Job job = new Job(getConf()); job.setJarByClass(WordCountNew.class); job.setJobName("mywordcount"); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(WordCountReduceMapper.class); job.setReducerClass(WordCountReduce.class); job.setCombinerClass(WordCountReduce.class); FileInputFormat.setInputPaths(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); boolean success = job.waitForCompletion(true); return success ? 0:1; } public static void main(String[] args) throws Exception { int result = ToolRunner.run(new WordCountNew(), args); System.exit(result); } }
相关推荐
Hadoop2.6版本稳定版API文档CHM文件
hadoop中文版API.chm文件,查找hadoop的类中方法、方法的用法等,方便、好用
在实际应用中,建议使用新API来编写MapReduce程序,以充分利用Hadoop的强大功能。 - **注意事项**:尽管旧API仍然可以使用,但在未来的版本中可能会被彻底废弃。因此,在进行新项目的开发时,建议使用新API。 - **...
### Hadoop新旧API对比及应用实践 #### 一、Hadoop API概述 Hadoop作为一个分布式计算框架,提供了丰富的...总之,在实际开发过程中,建议优先使用Hadoop的新API,以充分利用其优势,并确保代码的可维护性和扩展性。
Hadoop中文版API是针对Apache Hadoop开源框架的中文文档,它为开发者提供了全面的、易于理解的API指南,帮助中国开发者更好地理解和使用Hadoop。Hadoop是一个分布式计算框架,广泛应用于大数据处理和分析,其核心...
赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-api-2.5.1.pom; 包含翻译后...
通过解压并使用“hadoop2.6-api.zip”,开发者可以直接引用这些API,构建自己的Hadoop应用程序,进行大数据的存储、检索和分析。直接打开“index”文件,可以查看API的详细文档,帮助理解和使用这些接口。Hadoop 2.6...
Hadoop1.0.0权威API参考
在Hadoop生态系统中,`FileSystem API`是核心组件之一,它提供了一套接口,使得开发者可以方便地进行文件系统的操作,如读取、写入、移动和删除文件。本篇文章将详细讲解如何利用`FileSystem API`执行Hadoop文件的...
Hadoop是Apache Lucene的创始人 Doung Cutting 创建的, Hadoop起源于Apache Nutch, 一个开源的网络搜索引擎,也是Apache的Lucene项目的一部分。Hadoop是创始人Doung Cutting的儿子给一头大象起的名字。 Hadoop的子...
Hadoop API 使用指南 Hadoop API 是 Hadoop 项目的核心组件之一,它提供了一组丰富的 API,用于开发基于 Hadoop 的应用程序。Hadoop API 主要由多个包组成,每个包都提供了特定的功能。 org.apache.hadoop.conf 包...
Hadoop 2.10.0中文版API是大数据处理领域的一个重要参考资料,它为开发者提供了详尽的接口文档,帮助他们理解和使用Hadoop生态系统中的各种组件。Hadoop是一个开源框架,主要用于分布式存储和分布式计算,是大数据...
Hadoop 0.20.2 API文档是开发者在使用开源分布式架构Hadoop时的重要参考资料。这个版本的API文档详细地介绍了如何利用Java语言来与Hadoop生态系统进行交互,为开发人员提供了丰富的功能和工具,以实现大规模数据处理...
赠送jar包:hadoop-yarn-api-2.7.3.jar; 赠送原API文档:hadoop-yarn-api-2.7.3-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.7.3-sources.jar; 赠送Maven依赖信息文件:hadoop-yarn-api-2.7.3.pom; 包含翻译后...
赠送jar包:hadoop-yarn-api-2.5.1.jar; 赠送原API文档:hadoop-yarn-api-2.5.1-javadoc.jar; 赠送源代码:hadoop-yarn-api-2.5.1-sources.jar; 包含翻译后的API文档:hadoop-yarn-api-2.5.1-javadoc-API文档-...
3. **org.apache.hadoop.mapreduce**: 这是MapReduce的新一代API,它在Hadoop 0.20.x版本中引入,目的是提供更高级的功能和更好的性能。`MapReduce`类库包含`Mapper`, `Reducer`, `Driver`, `Context`等,这些类使得...
Hadoop2 API帮助文档是针对Hadoop 2.x版本的核心组件提供的一份详细参考资料,旨在帮助开发者高效地利用Hadoop框架进行大数据处理和分析。Hadoop是一个开源的分布式计算框架,由Apache软件基金会维护,其核心包括...
hadoop0.23.9离线api,解压后进入 doc 目录 ,双击 index.html 和javaapi一样 All Classes Packages org.apache.hadoop org.apache.hadoop.classification org.apache.hadoop.conf org.apache.hadoop.contrib....
具体使用Java API开发时,首先需要配置Hadoop和HBase的相关环境,包括设置HADOOP_CONF_DIR和HBASE_HOME环境变量。然后,开发者可以创建一个MapReduce作业,定义Mapper和Reducer类,使用`FileInputFormat`和`...
包含翻译后的API文档:hadoop-yarn-client-2.6.5-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.hadoop:hadoop-yarn-client:2.6.5; 标签:apache、client、hadoop、yarn、jar包、java、中文文档; ...