a saída da fase do mapa do trabalho de mapreduce está sempre classificada?
Estou um pouco confuso com a saída que recebo do Mapper.
Por exemplo, quando executo um programa simples de contagem de palavras, com este texto de entrada:
hello world
Hadoop programming
mapreduce wordcount
lets see if this works
12345678
hello world
mapreduce wordcount
esta é a saída que eu recebo:
12345678 1
Hadoop 1
hello 1
hello 1
if 1
lets 1
mapreduce 1
mapreduce 1
programming 1
see 1
this 1
wordcount 1
wordcount 1
works 1
world 1
world 1
Como você pode ver, a saída do mapeador já está classificada. Eu não corriReducer
em absoluto. Mas eu acho em um projeto diferente que a saída do mapeador não é classificada. Então, eu sou totalmente claro sobre isso ..
Minhas perguntas são:
A saída do mapeador está sempre classificada?A fase de classificação já está integrada na fase do mapeador, para que a saída da fase do mapa já esteja classificada nos dados intermediários?Existe uma maneira de coletar os dados desort and shuffle
fase e persistir antes de ir para o redutor? Um redutor é apresentado com uma chave e uma lista de iteráveis. Existe uma maneira, eu poderia persistir esses dados?