关于map-reduce中的上下文对象

时间:2015-06-10 17:40:14

标签: hadoop mapreduce

任何人都可以解释为什么我们在下面的语句中用尖括号写入参数以及为什么我们在参数中定义输出键/值对。

public static class Map extends Mapper <LongWritable, Text, Text, IntWritable> 

什么是上下文对象以及我们在下面的语句中使用的原因。

public void map(LongWritable key, Text value, Context context ) throws IOException, InterruptedException

2 个答案:

答案 0 :(得分:0)

&LT;&GT;用于表示Java中的泛型

映射器<LongWritable, Text, Text, IntWritable>仅将<LongWritable,Text>作为键,<Text,IntWritable>作为值。如果您尝试向映射器提供任何其他可写类型,则会引发错误。

Context上下文对象用于在Key-Values中编写输出configuration, counters, cacheFiles以及获取Mapper等。

答案 1 :(得分:0)

添加@Vasu回答的内容..

Context存储对RecordReaderRecordWriter的引用。 每当context.getCurrentKey()context.getCurrentValue()用于检索键和值对时,请求都会分配给RecordReader。调用context.write()时,会将其分配给RecordWriter

这里RecordReaderRecordWrite r实际上是抽象类。