学习中心> Hadoop 分布式计算框架 MapReduce> 正文

Hadoop 分布式计算框架 MapReduce

89课时 |
420人已学 |
免费
课程介绍

课程大纲

  • MapReduce概述
  • MapReduce官方案例 - WordCount
  • 序列化
  • InputFormat数据输入
  • 工作流程
  • 分区
  • 排序
  • 组合器(Combiner)
  • 分组排序
  • MapTask和ReduceTask
  • OutputFormat数据输出
  • JOIN操作及案例
  • 部分案例
  • 压缩

MapReduce官方案例源码解析和数据类型

 

简介:

1、官方WordCount源码

2、常用数据序列化类型

 

1、官方WordCount源码:

采用反编译工具反编译源码,发现 WordCount案例有Map类、Reduce类和驱动类。且数据的类型是Hadoop自身封装的序列化类型。

2、常用数据序列化类型:

表4-1常用的数据类型对应的Hadoop数据序列化类型

Java类型

Hadoop Writable 类型

booleane

BooleanWritable

byte

ByteWritable

int

IntWritable

floate

FloatWritablev

longo

LongWritableo

double

DoubleWritable

stringe

Text

map

MapWritable

array

ArrayWritable

package org.apache.hadoop.examples;import java.io.IOException;

public class wozdCount

public static void main(String[] args)throws Exception

Configuration conf = new Configuration():

string[] otherArgs m new Generic0ptionsParser(conf,args). getRemainingArgs();if (otherArgs.length < 2){

System.err.println ("Usage: wordcount <in>[<in>...]<out>");system.exit(2);

Job job = Job.getinstance(conf, "word count"") ;job.setJarByClass(wordcount.class) ;

job.setMapperClass(TokenizerMapper.class);job.setCombinerClass(IntSumReducer.class);job.setReducerClass(IntSumReducer.class);job.setoutputKeyClass(Text.class) ;

job.setOutputValueClass (Intwritable.class) ;

for (int i = 0; i < otherlrgs.length - 1; i++){

FileInputFormat.addInputPath(job,new Path(othezArgs[i]));}

FileoutputFormat.setoutputPath(job,new Path(otherArgs [ (otherArgs.length - 1)]));

System.exit(job.waitForCompletion (true) ? 0 : 1);

}

public static class IntSumReducer extends Reducer<Text,Intiritable,Text,IntWritable>{

private Intwritable result = new Intwritable() ;

public void reduce(Text key,IiterablecIntiritable> values,Reducer<Text,Intieitable,Text,Intiritable>.Context context)throws IOException,InterruptedException

 

 

我的学习进度
请登录后查看您的学习进度!
立即登录
本课程相关云产品