博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MapReduce实现WordCount
阅读量:6954 次
发布时间:2019-06-27

本文共 2239 字,大约阅读时间需要 7 分钟。

package algorithm;import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;//前两个参数是固定的后两个根据需要修改  第四个参数我改成了IntWritable  比int写的快public class TestMapper1 extends Mapper
{ //key是行好 value是哪一行内容 //文件多少行 map调用多少次 public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException { String line = value.toString(); StringTokenizer st = new StringTokenizer(line); while(st.hasMoreElements()) { String word = st.nextToken(); context.write(new Text(word), new IntWritable(1));//map的输出 } }}

  

package algorithm;import java.io.IOException;import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Reducer;public class TestReduce1 extends Reducer
{ public void reduce(Text key, Iterable
iterable, Context context) throws IOException, InterruptedException { // process values int sum = 0; for (IntWritable val : iterable) { sum += val.get();//get转为整数 } context.write(key, new IntWritable(sum)); }}

  

package algorithm;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.lib.input.FileInputFormat;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;public class Mapreduce1 {	public static void main(String[] args) throws Exception {		Configuration conf = new Configuration(); //对应于mapred-site.xml		Job job = new Job(conf,"WordCount");		job.setJarByClass(Mapreduce1.class);		job.setMapperClass(TestMapper1.class);		job.setReducerClass(TestReduce1.class);		job.setOutputKeyClass(Text.class);		job.setOutputValueClass(IntWritable.class);				job.setNumReduceTasks(1);		//"/in"解析不了  提示文件不存在 因为把他们认为是本地文件了 因为有个 file:/		FileInputFormat.addInputPath(job, new Path("hdfs://192.168.58.180:8020/in"));		//输出文件不能存在   		FileOutputFormat.setOutputPath(job, new Path("hdfs://192.168.58.180:8020/wordcount"));		System.exit(job.waitForCompletion(true) ? 0 : 1);	}}

  

转载地址:http://jrjil.baihongyu.com/

你可能感兴趣的文章
evaluate-division
查看>>
hdu 2141 Can you find it?
查看>>
html5--3.10 input元素(9)
查看>>
路由器与交换机区别
查看>>
Android菜鸟在路上——Activity生命周期
查看>>
Swing-JCheckBox用法-入门
查看>>
比爾蓋茲給年青人的十一句話
查看>>
注册表单常用验证方式
查看>>
lightoj 1012
查看>>
Python3.5入门学习记录-函数
查看>>
主动撤离一线城市,北京到杭州
查看>>
基于Python语言实现的购物车程序<入门小白>
查看>>
Hadoop完全分布式环境搭建(二)——基于Ubuntu16.04设置免密登录
查看>>
impala 问题
查看>>
OCP 11G 052题库解析汇总链接
查看>>
职业规划
查看>>
【最小割】【Dinic】bzoj3275 Number
查看>>
RvmTranslator6.3 is released
查看>>
OpenCASCADE 麻花钻头造型实例分析
查看>>
[旧博客]酷狗百名榜爬虫开源
查看>>