美文网首页
Hadoop权威指南-ch2 MapReduce(1)

Hadoop权威指南-ch2 MapReduce(1)

作者: 元素周期表的十七君 | 来源:发表于2018-04-25 14:46 被阅读0次

    注:本文涉及书中2.1~2.3小结

    1. MapReduce任务过程:map和reduce

    MapReduce任务过程分为两个处理阶段:map阶段和reduce阶段。每个阶段都以键值对作为输入和输出,其类型有程序员来选择。程序员还需要写两个函数:map函数和reduce函数。

    本书以气象数据的例子讲述了MapReduce的工作原理。

    2. Java MapReduce

    实现MapReduce需要三个部分:map函数、reduce函数和一些用来运行作业的代码。

    1. map函数Mapper类实现,Mapper类声明一个map()虚方法。Mapper类是一个泛型类型,有4个形参类型,分别指定map函数的输入键、输入值、输出键、输出值的类型


    补充

    Mapper类是Hadoop提供的一个抽象类,我们可以继承这个基类并实现其中的相关接口函数.

    Hadoop1.2.1中对Mapper类的定义如下:

    public class Mapper<KEYIN, VALUEIN, KEYIN, VALUEIN>

    Mapper类包含4个方法:setup(), map(), cleanup(), run()。其中,map方法是Mapper类的核心成员,主要工作都是在这里完成的,应用程序一般都会根据实际需要override该方法。

    protected void map(KEYIN key, VALUEIN value, Context context)

    其中key是传入map的键值,value是对应键值的value值,context是环境对象变量,供程序访问Hadoop的环境参数

    map方法对输入的键值对进行处理,产生一系列的中间键值对,转换后的中间键值对可以有新的键值类型。


    看完源码,感觉需要看看Java了T T

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

    2. 同理,reduce函数Reducer类实现。Reducer类也有4个形参类型,用于指定输入键、输入值、输出键、输出值的类型。reduce函数的输入类型必须匹配map函数的输出类型。

    3. 写运行MapReduce的作业代码

    注:

    书中2.3小结给出了Hadoop在本地文件系统上的分析最高气温的实例,下一步准备对其进行复现。

    相关文章

      网友评论

          本文标题:Hadoop权威指南-ch2 MapReduce(1)

          本文链接:https://www.haomeiwen.com/subject/llpelftx.html