Par de valores-chave de entrada do mapeador no Hadoop

Normalmente, escrevemos o mapeador no formulário:

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

Aqui, o par de valores-chave de entrada para o mapeador é<LongWritable, Text> - até onde eu sei quando o mapeador obtém os dados de entrada, ele passa por linha por linha - então a Chave para o mapeador indica o número da linha - por favor me corrija se eu estiver errado.

Minha pergunta é: se eu der o par de valor-chave de entrada para o mapeador como<Text, Text> então está dando o erro

 java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.io.Text

É obrigatório fornecer o par de mapeamento de valor-chave de entrada como<LongWritable, Text> - se sim, então porque? se não, então qual a razão do erro? Você pode por favor me ajudar a entender o raciocínio correto do erro?

Desde já, obrigado.

questionAnswers(3)

yourAnswerToTheQuestion