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,

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章