zoukankan      html  css  js  c++  java
  • Hadoop_MapReduce中Mapper类和Reduce类

    在权威指南中,有个关于处理温度的MapReduce类,具体如下:

    第一部分:Map

    public class MaxTemperatureMapper extends MapReduceBase 

          implements Mapper<LongWritable,Text,Text,IntWritable>{

    //其他代码

    public void map(LongWritable key, Text value, OutputCollector<Text,IntWritable> output, Report reporter){

    //分析一下这四个参数

    该Mapper 接口是一个泛型类型,有四个形参类型,分别为:

      LongWritable key   Map函数的输入键

      Text value            Map函数的输入值

    OutputCollector<Text,IntWritable> output    输出键

    Report reporter   输出值

    }

    }

    PS :Hadoop 自身提供一套可优化网络序列化传输的基本类型,而不直接使用Java内嵌的类型。这些类型均在 org.apache.hadoop.io 包中。

      LongWritable 类型相当于Java中的Long类型

      Text类型相当于Java中的String类型

      IntWritable 类型相当于Java中的Integer类型

    第二部分:Reduce

    Reducer类的定义和使用

    public class MaxTemperatureReducer extends MapReduceBase 

            implements Reducer<Text, IntWritable, Text, IntWritable>{

    public void reduce(Text key, Iterable<IntWritabloe> values, Context context){

    }

    }

    pS: reduce 函数也有四个形式参数类型用于指定输入和输出类型。

    reduce函数的输入类型必须匹配map函数的输出类型。

    即Text类型和IntWritable 类型。

    第三部:运行MapReduce作业

    调用Job类的方法即可。

    Job对象指定作业执行规范。

  • 相关阅读:
    通过json动态创建控制器
    记一次bug解决!改变思路解决问题的同时,还需要弄明白是什么原因。
    __proto__,prototype,constructor
    事件:compositionstart & compositionend,解决oninput获取到拼音的问题。
    事件绑定----阻止冒泡失效
    预装的win10系统如何恢复
    rem.js
    vscode 使用 github仓库
    nginx使用
    伸缩盒
  • 原文地址:https://www.cnblogs.com/yytlmm/p/4837767.html
Copyright © 2011-2022 走看看