hadoop案例实现之WordCount (计算单词出现的频数)
来源:互联网 发布:打车软件有几种 编辑:程序博客网 时间:2024/06/06 01:17
一、编写java代码,实现map函数以及reduce函数
package com.paic.elis.test;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.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;public class WordCount { public static class WordCountMap extends Mapper<LongWritable, Text, Text, IntWritable> { private final IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); StringTokenizer token = new StringTokenizer(line); while (token.hasMoreTokens()) { word.set(token.nextToken()); context.write(word, one); } } } public static class WordCountReduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); Job job = new Job(conf); job.setJarByClass(WordCount.class); job.setJobName("wordcount"); job.setOutputKeyClass(Text.class); job.setOutputValueClass(IntWritable.class); job.setMapperClass(WordCountMap.class); job.setReducerClass(WordCountReduce.class); job.setInputFormatClass(TextInputFormat.class); job.setOutputFormatClass(TextOutputFormat.class); FileInputFormat.addInputPath(job, new Path(args[0])); FileOutputFormat.setOutputPath(job, new Path(args[1])); job.waitForCompletion(true); }}
二、打包成jar文件并上传到远程云主机。
如何打包,打包过程详见我的另一篇博客。
三、在远程主机操作。
1.将文件通过ssh传到远程来。
2.在hadoop中创建文件夹,并将linux 主机的内容上传到HDFS中。
3.查看是否上传成功。
4.执行。
5.执行过程输出
6.查看结果:
ps:
file1.txt 以及 file2.txt如下所示:
1 0
- hadoop案例实现之WordCount (计算单词出现的频数)
- 求文件中单词出现的频数
- Spark Streaming实现实时WordCount,DStream的使用,updateStateByKey(func)实现累计计算单词出现频率
- Hadoop的WordCount案例
- python count()计算字符出现的频数
- 【Hadoop基础教程】Hadoop之单词计数wordcount
- 使用trie树统计单词出现的频数
- 统计一篇英文文章中单词出现的频数
- Hadoop 之 Wordcount 单词计数 (学习笔记)
- Hadoop-MapReduce之WordCount的实现
- Hadoop中自带的examples之wordcount应用案例
- Hadoop 实战之单词计数WordCount
- Hadoop 实战之单词计数wordcount
- hadoop实例分析之WordCount单词统计分析
- hadoop实例分析之WordCount单词统计分析
- hadoop计算单词出现次数
- Python(2.7.x)实现简单的单词频数统计
- Hadoop的WordCount实现
- 图的遍历
- http://blog.csdn.net/innost?viewmode=contents
- ios打印NSInteger的时候去除警告
- 解决 RMContainerAllocator: Exception while unregistering java.lang.NullPointerException问题
- 第一行代码笔记之一Android系统架构
- hadoop案例实现之WordCount (计算单词出现的频数)
- 3、强制类型转换、as和is
- 全面解析Activity的生命周期
- 2015湘潭邀请赛 Segment Tree
- git
- tabhost+滚动条的效果实现
- 算法中常见时间复杂度的比较
- iOS相关,过年回来电脑上的证书都失效了,求大神!
- xilinx千兆以太网与万兆以太网IP接口