文档章节

hadoop-mapreduce分析

cookqq
 cookqq
发布于 2014/01/05 19:14
字数 663
阅读 150
收藏 6

把整个Hadoop看作是容器,那么Mapper和Reduce就是容器里的组件,*Context保存了组件的一些配置信息,同时也是和容器通信的机制。

参数

作用

缺省值

其它实现

InputFormat

将输入的数据集切割成小数据集 InputSplits, 每一个InputSplit 将由一个 Mapper负责处理。此外InputFormat 中还提供一个RecordReader 的实现将一个 InputSplit 解析成<key,value> 对提供给 map函数。

TextInputFormat
(
针对文本文件,按行将文本文件切割成 InputSplits, 并用LineRecordReader  InputSplit 解析成 <key,value> 对,key 是行在文件中的位置,value 是文件中的一行)

SequenceFileInputFormat

OutputFormat

提供一个 RecordWriter 的实现,负责输出最终结果

TextOutputFormat
(
 LineRecordWriter 将最终结果写成纯文件文件,每个 <key,value> 对一行,key  value 之间用 tab 分隔)

SequenceFileOutputFormat

OutputKeyClass

输出的最终结果中 key 的类型

LongWritable

 

OutputValueClass

输出的最终结果中 value 的类型

Text

 

MapperClass

Mapper 类,实现 map 函数,完成输入的<key,value> 到中间结果的映射

IdentityMapper
(
将输入的 <key,value> 原封不动的输出为中间结果)

LongSumReducer,
LogRegexMapper,
InverseMapper

CombinerClass

实现 combine 函数,将中间结果中的重复 key 做合并

null
(
不对中间结果中的重复 key 做合并)

 

ReducerClass

Reducer 类,实现 reduce函数,对中间结果做合并,形成最终结果

IdentityReducer
(
将中间结果直接输出为最终结果)

AccumulatingReducer, LongSumReducer

InputPath

设定 job 的输入目录, job 运行时会处理输入目录下的所有文件

null

 

OutputPath

设定 job 的输出目录,job的最终结果会写入输出目录下

null

 

MapOutputKeyClass

设定 map 函数输出的中间结果中 key 的类型

如果用户没有设定的话,使用OutputKeyClass

 

MapOutputValueClass

设定 map 函数输出的中间结果中 value 的类型

如果用户没有设定的话,使用OutputValuesClass

 

OutputKeyComparator

对结果中的 key 进行排序时的使用的比较器

WritableComparable

 

PartitionerClass

对中间结果的 key 排序后,用此 Partition 函数将其划分为R,每份由一个Reducer 负责处理。

HashPartitioner
(
使用 Hash 函数做 partition)

KeyFieldBasedPartitioner PipesPartitioner

Job继承自JobContext,提供了一系列的set方法,用于设置Job的一些属性(Job更新属性,JobContext读属性),同时,Job还提供了一些对Job进行控制的方法,如下:

l           mapProgress:map的进度(0—1.0);

l           reduceProgress:reduce的进度(0—1.0);

l           isComplete:作业是否已经完成;

l           isSuccessful:作业是否成功;

l           killJob:结束一个在运行中的作业;

l           getTaskCompletionEvents:得到任务完成的应答(成功/失败);

l           killTask:结束某一个任务;


本文转载自:http://caibinbupt.iteye.com/blog/338785

cookqq

cookqq

粉丝 119
博文 268
码字总数 156096
作品 0
海淀
技术主管
私信 提问
大数据经典学习路线(及供参考)之 一

1.Linux基础和分布式集群技术 学完此阶段可掌握的核心能力: 熟练使用Linux,熟练安装Linux上的软件,了解熟悉负载均衡、高可靠等集群相关概念,搭建互联网高并发、高可靠的服务架构; 学完此...

柯西带你学编程
2018/05/22
0
0
Hadoop源代码分析(包hadoop.mapred中的MapReduce接口)

前面已经完成了对org.apache.hadoop.mapreduce的分析,这个包提供了Hadoop MapReduce部分的应用API,用于用户实现自己的MapReduce应用。但这些接口是给未来的MapReduce应用的,目前MapReduce...

超人学院
2015/05/25
114
0
Hadoop的辉煌还能延续多久?

Hadoop技术已经无处不在。不管是好是坏,Hadoop已经成为大数据的代名词。短短几年间,Hadoop从一种边缘技术成为事实上的标准。看来,不仅现在Hadoop是企业大数据的标准,而且在未来,它的地位...

一枚Sir
2014/08/05
246
0
阿里云 E-MapReduce产品优势及使用场景

E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 产品优势: 与自建集...

凹凹凸曼
2018/09/12
0
0
大数据教程(8.1)mapreduce核心思想

上一章介绍了hadoop的HDFS文件系统的原理及API使用。本章博主将继续对hadoop的mapreduce编程框架进行分享。 mapreduce原理篇 mapreduce是一个分布式运算程序的编程框架,是用户开发“基于had...

em_aaron
2018/11/19
124
0

没有更多内容

加载失败,请刷新页面

加载更多

MBTI助你成功,让你更了解你自己

MBTI助你成功,让你更了解你自己 生活总是一个七日接着又一个七日,相信看过第七日的小伙伴,很熟悉这段开场白,人生是一个测试接着又一个测试,上学的时候测试,是为了证明你的智力,可谓从...

蛤蟆丸子
38分钟前
49
0
Android实现App版本自动更新

现在很多的App中都会有一个检查版本的功能。例如斗鱼TV App的设置界面下: 当我们点击检查更新的时候,就会向服务器发起版本检测的请求。一般的处理方式是:服务器返回的App版本与当前手机安...

shzwork
昨天
63
0
npm 发布webpack插件 webpack-html-cdn-plugin

初始化一个项目 npm init 切换到npm源 淘宝 npm config set registry https://registry.npm.taobao.org npm npm config set registry http://registry.npmjs.org 登录 npm login 登录状态......

阿豪boy
昨天
87
0
java基础(16)递归

一.说明 递归:方法内调用自己 public static void run1(){ //递归 run1(); } 二.入门: 三.执行流程: 四.无限循环:经常用 无限递归不要轻易使用,无限递归的终点是:栈内存溢出错误 五.递...

煌sir
昨天
63
0
REST接口设计规范总结

URI格式规范 URI中尽量使用连字符”-“代替下划线”_”的使用 URI中统一使用小写字母 URI中不要包含文件(脚本)的扩展名 URI命名规范 文档(Document)类型的资源用名词(短语)单数命名 集合(Co...

Treize
昨天
69
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部