我有2个1 MB的文本文件存储在HDFS中,作为我的MapReduce程序的输入。在下一行中,我们考虑 map(( 的输入对是 。
class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
这里的长可写密钥是什么?MapReduce是如何假设的?输入文件中的每一行文本都有一个键,还是假定文件中的完整文本只有一个键(即一次所有行(?
1-这里的LongWwriteable键是该行的offset
,表示文件中该行的position
并not
行号。这两者之间a lot
区别。
2-它由MapReduce框架not assumed
。您在MR工作中使用的InputFormat
有责任决定它。默认值为 TextInputFormat
,它将行的字节偏移量作为键,就像您的情况一样。
3-好吧,这再次取决于您的输入格式。如果您使用的是 TextInputFormat,则每一行都将被视为值,其偏移量作为键。但是你可以有自己的自定义输入格式,它可能只给你一个键来表示整个文件和该文件的所有行作为值。
行的字节偏移量,或者你可以说行号