7

我有 2 个 1 MB 的文本文件,每个文件都存储在 HDFS 中,作为 MapReduce 程序的输入。在下一行中,我们认为 map() 的输入对是 。

class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {

这里的 LongWritable 键是什么?MapReduce 是如何假设的?输入文件中的每一行文本是否都有一个键,或者假设文件中的完整文本只有一个键(即一次所有行)?

4

2 回答 2

9

1- 这里的 LongWritable 键是offset行的,这意味着position文件中的该行和not行号。这2个是a lot有区别的。

2- 它是not assumed由 MapReduce 框架。InputFormat决定它是您在 MR 工作中使用的职责。默认值是TextInputFormat将行的字节偏移量作为键,就像您的情况一样。

3-好吧,这又取决于您的 InputFormat。如果您使用 TextInputFormat,那么每一行都将被视为值,其偏移量作为键。但是您可以拥有自己的自定义 InputFormat,它可能只为您提供整个文件的一个键以及该文件的所有行作为值。

于 2013-06-09T18:49:02.853 回答
-1

它是行的字节偏移量,或者您可以说行号

于 2013-06-09T11:56:06.243 回答