MapReduce库类
Hadoop除了可以让开发人员自行编写map函数和reduce函数,还提供一些常用函数(mapper、reducer和partitioner)的类库,这些类位于 org.apache.hadoop.mapred.lib 包内,在1.2.1版,该包包含一个接口和若干类。在org.apache.hadoop.mapreduce.lib 包内也存在相关类库,且有部分重复。mapred包内部是旧API,mapreduce包是重构之后的新API,但两者都可以使用。
接口如下:
| InputSampler.Sampler<K,V> | Interface to sample using an InputFormat. |
类如下:
| BinaryPartitioner<V> | Partition BinaryComparable keys using a configurable part of the bytes array returned by BinaryComparable.getBytes(). |
| ChainMapper | The ChainMapper class allows to use multiple Mapper classes within a single Map task. |
| ChainReducer | The ChainReducer class allows to chain multiple Mapper classes after a Reducer within the Reducer task. |
| CombineFileInputFormat<K,V> | An abstract InputFormat that returns CombineFileSplit's in InputFormat.getSplits(JobConf, int) method. |
| CombineFileRecordReader<K,V> | A generic RecordReader that can hand out different recordReaders for each chunk in a CombineFileSplit. |
| CombineFileSplit | A sub-collection of input files. |
| DelegatingInputFormat<K,V> | An InputFormat that delegates behaviour of paths to multiple other InputFormats. |
| DelegatingMapper<K1,V1,K2,V2> | An Mapper that delegates behaviour of paths to multiple other mappers. |
| FieldSelectionMapReduce<K,V> | This class implements a mapper/reducer class that can be used to perform field selections in a manner similar to unix cut. |
| HashPartitioner<K2,V2> | Partition keys by their Object.hashCode(). |
| IdentityMapper<K,V> | Implements the identity function, mapping inputs directly to outputs. |
| IdentityReducer<K,V> | Performs no reduction, writing all input values directly to the output. |
| InputSampler<K,V> | Utility for collecting samples and writing a partition file for TotalOrderPartitioner. |
| InputSampler.IntervalSampler<K,V> | Sample from s splits at regular intervals. |
| InputSampler.RandomSampler<K,V> | Sample from random points in the input. |
| InputSampler.SplitSampler<K,V> | Samples the first n records from s splits. |
| InverseMapper<K,V> | A Mapper that swaps keys and values. |
| KeyFieldBasedComparator<K,V> | This comparator implementation provides a subset of the features provided by the Unix/GNU Sort. |
| KeyFieldBasedPartitioner<K2,V2> | Defines a way to partition keys based on certain key fields (also see KeyFieldBasedComparator. |
| LongSumReducer<K> | A Reducer that sums long values. |
| MultipleInputs | This class supports MapReduce jobs that have multiple input paths with a different InputFormat and Mapper for each path |
| MultipleOutputFormat<K,V> | This abstract class extends the FileOutputFormat, allowing to write the output data to different output files. |
| MultipleOutputs | The MultipleOutputs class simplifies writting to additional outputs other than the job default output via the OutputCollectorpassed to the map() and reduce() methods of the Mapper and Reducer implementations. |
| MultipleSequenceFileOutputFormat<K,V> | This class extends the MultipleOutputFormat, allowing to write the output data to different output files in sequence file output format. |
| MultipleTextOutputFormat<K,V> | This class extends the MultipleOutputFormat, allowing to write the output data to different output files in Text output format. |
| MultithreadedMapRunner<K1,V1,K2,V2> | Multithreaded implementation for @link org.apache.hadoop.mapred.MapRunnable. |
| NLineInputFormat | NLineInputFormat which splits N lines of input as one split. |
| NullOutputFormat<K,V> | Consume all outputs and put them in /dev/null. |
| RegexMapper<K> | A Mapper that extracts text matching a regular expression. |
| TokenCountMapper<K> | A Mapper that maps text values into <token,freq>pairs. |
| TotalOrderPartitioner<K extends WritableComparable,V> | Partitioner effecting a total order by reading split points from an externally generated source. |
目前,用到的有一下几个类,后续将对其他类及接口进行研究。
1)ChainMapper类和ChainReducer类:可以在一个mapper中运行多个mapper,再运行reducer,之后还可以再运行多个mapper。这两个类组合使用,用于需要执行多个mapreduce过程的情况。这个方案可以明显降低磁盘的I/O开销。
2)TokenCounterMapper类:将输入值分解成独立的单词(使用Java的StringTokenizer)、输出各单词及其计数器(值为1)
3)InverseMapper类:一个能交换键和值的mapper
参考资料:
1. hadoop API 文档
2. Hadoop 权威指南
MapReduce库类的更多相关文章
- 代码的坏味道(22)——不完美的库类(Incomplete Library Class)
坏味道--不完美的库类(Incomplete Library Class) 特征 当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了). 问题原因 许多编程技术都建 ...
- .Net Core库类项目跨项目读取配置文件
在项目开始之前我们可以先去了解一下IConfiguration接口,.Net Core Web应用程序类似于一个控制台,当程序运行到Startup时会自动注入IConfiguration,默认读取当前 ...
- python安装pip和使用pip安装Python库类比如pip安装beautifulsoup4
初学Python时,看到很多不懂得东西,比如 pip, 是python 包管理工具,pip是easy_install的取代. Distribute是对标准库disutils模块的增强,我们知道disu ...
- C++ | boost库 类的序列化
是的,这是今年的情人节,一篇还在研究怎么用的文章,文结的时候应该就用成功了. 恩,要有信心 神奇的分割线 不知何时装过boost库的header-only库, 所以ratslam中的boost是可以编 ...
- MapReduce自定义类输出的内容为内存地址
13480253104 mapreduce.KpiWritable@486a58c4 13502468823 mapreduce.KpiWritable@3de9d100 13560439658 ma ...
- C++标准库类模板(stack)和 队列(queue)
在C++标准库(STL)中有栈和队列的类模板,因此可以直接使用 1.栈(stack):使用栈之前,要先包含头文件 : #include<stack> stack.push(elem); / ...
- C++标准库类模板vector
vector是C++标准库STL中的一个重要的类模板,相当于一个更加健壮的,有很多附加能力的数组 使用vector前首先要包含头文件 #include<vector> 1.vector的 ...
- 非常实用全面的 C++框架,库类等资源
这次的资源涉及到了标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等,C++程序员学习必备! Jason frozen : C/C++的Jason解析生成器 Jansson ...
- android的引用库类
在eclipse中的项目里,有时需要外来的jar文件.添加后就可以消去程序中的红条条啦~~~~~~~~~可以照下面的说明添加. 方法/步骤 打开eclipse,导入项目 右击 项目 , “Bu ...
随机推荐
- Redis监控数据分布工具Redis-audit 使用总结
Redis-audit 是一个用ruby实现的脚本,通过它,我们可以知道每一类 key 对内存的使用量.它可以提供的数据有:某一类 key 值的访问频率如何,有多少值设置了过期时间,某一类 key 值 ...
- 你不知道的Eclipse用法:使用Allocation tracker跟踪Android应用内存分配
Android Tools中的DDMS带有一个很不错的跟踪内存分配的工具Allocation tracker.通过Alloction tracker,不仅知道分配了哪类对象,还可以知道在哪个线程.哪个 ...
- Javascript 闭包与变量
1.闭包与变量 JavaScript中的作用域链的机制引出了一个副作用,即闭包只能取得包含函数中任何变量的最后一个值.闭包所保存的是整个变量对象,而不是某个特殊的值. 1 2 3 4 5 6 7 8 ...
- react入门——慕课网笔记
一. jsx 1. 被称为语法糖:糖衣语法,计算机语言中添加的某种语法,对语言的功能没有影响,更方便程序员使用,增加程序的可读性,降低出错的可能性 类似的还有(coffeescript,typescr ...
- 《如何阅读一本书》(How to Read a Book)
值得一读的书,有深入浅出,也有并不能完全读懂的部分,以下是第11章对之前内容的总结整理. 阅读的层次 1. 基础阅读 2. 检视阅读 3. 分析阅读 4. 主题阅读 分析阅读 第一阶段:这本书在谈些什 ...
- 将List 中的ConvertAll的使用:List 中的元素转换,List模型转换, list模型转数组
一,直接入代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using S ...
- [一波低姿势的usaco除草记]
总共花了一个月左右 把一份usaco的总结刷了一遍 应该有一百四十多道题 在此纪念一下 总体来说 发现自己基础不是很稳 基本贪心和一些堆的做法还是有点弱鸡 一些dp还是有点弱 但是数据结构题几乎都可以 ...
- My Eclipse Security Alert
SECURITY ALERT: INTEGRITY CHECK ERROR This product did not pass the MyEclipse integrity check. This ...
- Redis安装(CentOS7/tar.gz)
1. 将安装包redis-3.2.0.tar.gz上传到linux系统,位置随意. 2. 解压文件 .tar.gz 3. 解压后会在当前目录生成文件夹“redis-3.2.0”,将其拷贝到" ...
- lcd_1602
module lcd_pdf( clk,lcd_data, lcd_rw,lcd_rs, lcd_en,rst_n ); input clk; input rst_n; output reg [:] ...