什么是map()的LongWritable键输入?

7 mapreduce

我有两个1 MB的文本文件,每个文件存储在HDFS中作为MapReduce程序的输入.在下一行中,我们考虑map()的输入对.

class Map extends MapReduceBase implements Mapper<LongWritable, Text, Text, IntWritable> {
Run Code Online (Sandbox Code Playgroud)

什么是LongWritable密钥?MapReduce如何假设?输入文件中的每行文本是否都有一个键或单个键是否为文件中的完整文本(即一次所有行)?

Tar*_*riq 9

这里1-该LongWritable关键是offset该行的,这意味着position该文件在该行和的not行号.这a lot两者之间存在差异.

2-它是not assumed由MapReduce框架完成的.InputFormat你在MR工作中使用的责任是决定它.默认值是TextInputFormat将行的字节偏移量作为键,如您的情况.

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


Pra*_*mar -1

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