本文继续来看Mapper的实现。

Mapper

01 public static class Map
02         extends Mapper<LongWritable, Text, Text, IntWritable> {
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()方法返回一个Configuration,里面包含了Hadoop Job的配置数据。程序员可以在配置数据里加入任意的key-value对(例如:Job.getConfiguration().set(“Key”, “Value”)),当然,也可以把它读出来(Context.getConfiguration().get(“Key”))。这种功能一般会在Mapper的setup()方法里面实现。

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

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

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

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

Word Count Example of Hadoop V1.0 – Mapper的实现相关推荐

  1. PbootCMS独立插件系列之Word+Excel导入完全免费版V1.0

    原文链接+视频演示:PbootCMS独立插件系列之Word+Excel导入完全免费版V1.0 完全独立控制器,不影响官方后续更新,免费插件,允许随意传播分享,但禁止用来谋取不正当利益,当然,君子易处, ...

  2. 仙境传说 v1.0 绿色

    Welcome to my blog! <script language="javascript" src="http://avss.b15.cnwg.cn/cou ...

  3. print (“{0:<10}{1:>5}“.format(word, count))

    print ("{0:<10}{1:>5}".format(word, count)) 这个是format方法bai的格式控制.在duPython二级教程第三章< ...

  4. mysql数据库结构导出word_Windows导出MySQL数据库表结构到Word文档-DBExportDoc V1.0 For MySQL...

    必要条件: 1.Microsoft Office Word(我用WPS不行) 2.mysql-connector-odbc 3.会看文档 下载地址:关注微信公众号:八四七,回复5获取,压缩包中包含有具 ...

  5. android时钟字体,抖音文字云时钟app-抖音文字云时钟安卓版(word clock)v1.0下载

    抖音文字云时钟app是一款异常火爆的数字时钟软件,该软件在抖音上已经被众多小伙伴种草了,它拥有非常炫酷的背景,设置安装起来也非常简便,可以自定义多个模块,支持多种语音,感兴趣的小伙伴千万不要错过哦! ...

  6. Hadoop MapReduce测试word count功能

    在hadoop的mapreduce目录下自带有一个hadoop-mapreduce-examples-2.7.5.jar(官方已经为我们写好了用java实现word count的jar)可以用来测试w ...

  7. MapReduce之Word Count案例代码实现

    准备用于计算word count的数据文件 [root@hadoop01 test_data]# pwd /usr/local/wyh/test_data [root@hadoop01 test_da ...

  8. Hadoop 2.0.0-alpha尝鲜安装和hello world

    仅供测试学习的文章,不推荐在生产环境使用2.0,因为2.0采用YARN,hive,hbase,mahout等需要map/reduceV1的可能无法使用hadoop 2.0或者会出现意外情况. 5月23 ...

  9. 通过简单的Word Count讲解MapReduce原理以及Java实现

    MapReduce原理: MapReduce采用"分而治之"的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果 ...

最新文章

  1. awk截取字符命令_Linux运维基础技能: 脚本编程与Linux命令
  2. Lintcode27-Reverse 3-digit Integer
  3. python读取大文件-强悍的Python读取大文件的解决方案
  4. 简朴的生活、高贵的灵魂是人生的至高境界。——杨绛
  5. php 实现一致性哈希,PHP一致性哈希实现。。
  6. C#的二维码生成和解析
  7. robotframework--登录接口,post传递多个参数、及获取content中指定属性的值(5)
  8. IOS开发比较实用的框架总结(上)
  9. eclipse汉化(傻瓜式)
  10. apple/ios 获取udid
  11. 数据的类型:分类数据、顺序数据、数值型数据
  12. 【Web】1326- 深入浅出 Web Audio API
  13. python 根号化简_Python 基础
  14. Ntrip通讯协议1.0
  15. 复习对数函数相关知识
  16. 千牛文件已上传服务器,千牛怎样挂在云服务器上
  17. FLIR推出首款非制冷型甲烷气体检测热像仪
  18. oracle删除表结构或者表数据
  19. matlab做圆柱凸轮,圆柱凸轮的建模
  20. 环信即时通讯sdk使用时遇到的问题及解决

热门文章

  1. 蓝桥杯 ADV-227 算法提高 11-1实现strcmp函数
  2. [Python] L1-004. 计算摄氏温度-PAT团体程序设计天梯赛GPLT
  3. 怎么让Excel按某一列的数值来排序?
  4. Mysql5.6.23免安装配置
  5. Centos 7.4版本升级内核3.10+ 到4+过程
  6. Template parse errors: The pipe 'translate' could not be found
  7. SHELL 003 -- ss命令常用方法
  8. JAVA中的观察者模式observer
  9. ubuntu下Pure-FTPd的安装和配置
  10. Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之一