MapReduce数据分析(1)单词计数

一、MapReduce第一讲WordCount(单词计数)

在这里小编做一下简介:MapReduce计算框架。
MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:

1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。

2)MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。

3)MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理。

关于MapReduce的教程
我推荐大家去哔哩哔哩上面搜一些尚硅谷的教程,了解一下

下面话不多说,开始讲解案例。

Demo:交通大数据
需求:统计所有车牌号的次数
代码如下

package demo;

import java.io.IOException;

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.output.FileOutputFormat;
//京123456,京343466,京734554,京654686,
public class WordCount {
	//主类 
	public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
		//***注意主函数里的内容全部都是固定的***
		Configuration conf=new Configuration();
		Job job = Job.getInstance(conf);
		//指定我这个job所在的jar包
		job.setJarByClass(WordCount.class);
		//指定MapReduce的Map类
		job.setMapperClass(MMapper.class);
		//指定MapReduce的Reduce类
		job.setReducerClass(MReduce.class);
		//指定Map类的输入类型
		job.setMapOutputKeyClass(Text.class);
		//指定Map类的输出类型
		job.setMapOutputValueClass(IntWritable.class);
		//指定Reduce类的输入类型
		job.setOutputKeyClass(Text.class);
		//指定Reduce类的输出类型
		job.setOutputValueClass(IntWritable.class);
		//指定输入路径   args[0]  意思是输入路径第一个
		FileInputFormat.setInputPaths(job, new Path(args[0]));
		//指定输出路径   注意!  输出路径是可以自动生成的
		FileOutputFormat.setOutputPath(job, new Path(args[1]));
		boolean res = job.waitForCompletion(true);
		//成功返回0 否则1.
		System.exit(res?0:1);

	}
	//Map类
	
	//这里解说一下  一般常用的偏移量就是object和longwritable	
	public static class MMapper extends Mapper<LongWritable, Text, Text, IntWritable>{
						
		protected void map(LongWritable key, Text value, Context context)
				throws IOException, InterruptedException {
			//转换数据类型并切割
			String[] line = value.toString().split(",");
			//遍历数组,输出<车牌号,1>
			for (String v : line) {
				context.write(new Text(v), new IntWritable(1));
			}
			//		京734554   1
		}
	}


//Reduce类
												
	public static class MReduce extends Reducer<Text, IntWritable, Text, IntWritable>{
	
		protected void reduce(Text key, Iterable<IntWritable> value,
				Context context) throws IOException, InterruptedException {
			//定义一个计数器	
			int sum =0 ;
			遍历这一组kv的所有v,累加到sum中
			for (IntWritable v : value) {
				sum+=v.get();
			}
			context.write(key, new IntWritable(sum));
		}
	}
}

运行结果

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本次教程到此结束,下面附上部分数据:

京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,京222566,京111156,京667890,京757775,京234563,京135664,京123456,京343466,京734554,京654686,京234579,京356711,京224564,京553456,京886432,京556780,京122345,京665475,

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序猿

觉得写的不错的给小编一点鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值