hadoop-mapreduce的示例分析
这篇文章主要为大家展示了“hadoop-mapreduce的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“hadoop-mapreduce的示例分析”这篇文章吧。
把整个Hadoop看作是容器,那么Mapper和Reduce就是容器里的组件,*Context保存了组件的一些配置信息,同时也是和容器通信的机制。
参数 |
作用 |
缺省值 |
其它实现 |
InputFormat |
将输入的数据集切割成小数据集 InputSplits, 每一个InputSplit 将由一个 Mapper负责处理。此外InputFormat 中还提供一个RecordReader 的实现, 将一个 InputSplit 解析成<key,value> 对提供给 map函数。 |
TextInputFormat |
SequenceFileInputFormat |
OutputFormat |
提供一个 RecordWriter 的实现,负责输出最终结果 |
TextOutputFormat |
SequenceFileOutputFormat |
OutputKeyClass |
输出的最终结果中 key 的类型 |
LongWritable |
|
OutputValueClass |
输出的最终结果中 value 的类型 |
Text |
|
MapperClass |
Mapper 类,实现 map 函数,完成输入的<key,value> 到中间结果的映射 |
IdentityMapper |
LongSumReducer, |
CombinerClass |
实现 combine 函数,将中间结果中的重复 key 做合并 |
null |
|
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 |
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:结束某一个任务;
以上是“hadoop-mapreduce的示例分析”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!