博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Word Count Example of Hadoop V1.0 – Mapper的实现
阅读量:6815 次
发布时间:2019-06-26

本文共 1543 字,大约阅读时间需要 5 分钟。

本文继续来看Mapper的实现。

Mapper

01 public static class Map02         extends Mapper
 {03     private final static IntWritable one = new IntWritable(1);04     private Text word = new Text();05 06     public void map(LongWritable key, Text value, Context context)07             throws IOException, InterruptedException {08         String line = value.toString();09         StringTokenizer tokenizer = new StringTokenizer(line);10         while (tokenizer.hasMoreTokens()) {11             word.set(tokenizer.nextToken());12             context.write(word, one);13         }14     }15 }

我们实现了Driver中指定的Map.class,这个类继承自Mapper<LongWritable, Text, Text, IntWritable>,其中四个类型以此是input的key和value,和Mapper输出的Key和Value。

03     private final static IntWritable one = new IntWritable(1);04     private Text word = new Text();

这两行是定义mapper的输出,看类型就能看出来,Text是mapper输出的key,IntWritable是mapper输出的value。

06     public void map(LongWritable key, Text value, Context context)

继承Mapper就要实现map函数,LongWritable和Text即mapper的输入,Context是mapper和Hadoop系统交互的工具。它可以存储配置数据,还能输出key-value。

getConfiguration()方法返回一个,里面包含了Hadoop Job的配置数据。程序员可以在配置数据里加入任意的key-value对(例如:Job.getConfiguration().set(“Key”, “Value”)),当然,也可以把它读出来(Context.getConfiguration().get(“Key”))。这种功能一般会在Mapper的方法里面实现。

map(KeyInType, ValInType, Context)是由方法调用的。map方法处理数据后,通过方法输出。

在mapper结束后,应用程序可以通过重载Mapper的方法来做一些需要的收尾工作。

Mapper的输出对的类型不需要和输入对的类型一致,而且给定一个输入对,可以对应于0个或多个输出对。

Context的另一个作用是report progress,可以像Hadoop Job发送任何应用层的状态信息,或者只是告诉别人自己还活着。

转载于:https://www.cnblogs.com/licheng/archive/2011/11/08/2241725.html

你可能感兴趣的文章
媒体融合三部曲(未完待续...)
查看>>
OkHttp3-拦截器(Interceptor)
查看>>
Bootstrap在实际生产开发中的使用心得
查看>>
Google推出实时内容洞察工具 为用户提供表现最好的内容
查看>>
虚拟机故障与故障处理工具之指令篇
查看>>
iOS 基础知识学习目录索引
查看>>
My_Base_notes
查看>>
Node assert断言学习及mocha框架与travisCI初探
查看>>
大话转岗 PHP 开发小结
查看>>
React的状态管理
查看>>
寻找一种易于理解的一致性算法(扩展版)下
查看>>
MySQL - 高可用性:少宕机即高可用?
查看>>
2018电影票房分析-谁才是票房之王
查看>>
程序员可以干到多少岁?
查看>>
Storm系列(六)storm和kafka集成
查看>>
东南亚的招聘骗局,程序员请注意!
查看>>
Android 获得View宽高的几种方式
查看>>
iOS正则表达式
查看>>
关于javascript的this指向问题
查看>>
Promise的理解和用法
查看>>