Mapper类详解
来源:互联网 发布:淘宝发布宝贝 压缩包 编辑:程序博客网 时间:2024/06/05 14:31
Mapper共有setup(),map(),cleanup()和run()四个方法。其中setup()一般是用来进行一些map()前的准备工作,map()则一般承担主要的处理工作,cleanup()则是收尾工作如关闭文件或者执行map()后的K-V分发等。run()方法提供了setup->map->cleanup()的执行模板。从上面run方法可以看出,K/V对是从传入的Context获取的。我们也可以从下面的map方法看出,输出结果K/V对也是通过Context来完成的。至于Context暂且放着。
我们先来看看三个Mapper子类,它们位src\mapred\org\apache\Hadoop\mapreduce\lib\map:
1、TokenCounterMapper
我们看到,对于一个输入的K-V对,它使用StringTokenizer来获取value中的tokens,然后对每一个token,分发出一个<token,one>对,这将在reduce端被收集,同一个token对应的K-V对都会被收集到同一个reducer上,这样我们就可以计算出所有mapper分发出来的以某个token为key的<token,one>的数量,然后只要在reduce函数中加起来,就得到了token的计数。这就是为什么这个类叫做TokenCounterMapper的原因。
在MapReduce的“Hello world”:WordCount例子中,我们完全可以直接使用这个TokenCounterMapper作为MapperClass,仅需用job.setMapperClass(TokenCounterMapper.class)进行设置即可。
2.InverseMapper
这个类更加简单,它紧紧是调换Key和Value,然后直接分发出去。举个例子:数据格式是<某商家,某商品>,我们既可能需要计算一个商家对应的所有商品种类,也可能需要计算某个商品的销售商家数量,后者的情形,就可以使用InverseMapper来达到目的,使得相同商品被分发到相同reducer。
http://blog.csdn.NET/posa88/article/details/7901304
阅读全文
0 0
- Mapper类详解
- Mapper类详解
- mybatis Mapper.xml 详解
- device mapper机制详解
- Mapper XML Files详解
- mybatis mapper.xml详解
- Mapper.xml文件详解
- MyBatis mapper.xml 详解
- 详解mapper.xml文件
- mybatis mapper.xml详解
- ssm通用mapper配置详解
- MyBatis Mapper XML文件详解
- MyBatis Mapper XML文件详解
- Mapper配置之ResultMap详解
- MyBatis Mapper XML文件详解
- MyBatis Mapper XML文件详解
- hadoop之mapper类
- Mapper抽象类参数
- Spring事务管理
- Codeforces 837E Vasya's Function:数论入门初步
- ide 下载
- IntWritable详解
- squid透明代理配置
- Mapper类详解
- Configuration类详解
- Brew error: Could not symlink, xx/xx/xxx is not writable
- Properties类
- 最小表示法
- 设置环境变量的方法
- Swift3豆瓣电台
- STM32 Tutorial: #4 Using STM32Duino
- hadoop核心逻辑shuffle代码分析-map端