Pergunta

Espero estar perguntando isso da maneira certa. Estou aprendendo meu caminho para o elástico MapReduce e vi inúmeras referências ao redutor "agregado" que pode ser usado com fluxos de trabalho de "streaming".

Na Amazon, "Introdução ao Amazon Elastic MapReduce" PDF, ele afirma "Amazon Elastic MapReduce tem um redutor padrão chamado aggregate"

O que eu gostaria de saber é: Existem outros redutores padrão disponíveis?

Entendo que posso escrever meu próprio redutor, mas não quero acabar escrevendo algo que já existe e "reinvente a roda", porque tenho certeza de que minha roda não será tão boa quanto a original.

Foi útil?

Solução

Estou em uma situação semelhante. Deduro dos resultados do Google, etc., que a resposta agora é "não, não há outros redutores inadimplentes no Hadoop", o que é uma merda, porque seria obviamente útil ter redutores padrão como, digamos, "média" ou "mediana "Então você não precisa escrever o seu próprio.

http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html Mostra vários usos úteis do agregador, mas não consigo encontrar documentação sobre como acessar outras funcionalidades além da soma básica de chave/valor descrita na documentação e na resposta de Erik Forsberg. Talvez essa funcionalidade seja exposta apenas na API Java, que eu não quero usar.

Aliás, receio que a resposta de Erik Forsberg não seja uma boa resposta a essa pergunta em particular. Outra pergunta para a qual pode ser uma resposta útil pode ser construída, mas não é o que o OP está perguntando.

Outras dicas

O redutor que eles se referem está documentado aqui:

http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html

Esse é um redutor incorporado ao utilitário de streaming. Ele fornece uma maneira simples de fazer cálculo comum escrevendo um mapeador que as teclas de saída formatadas de uma maneira especial.

Por exemplo, se o seu maperes saídas:

LongValueSum:id1\t12
LongValueSum:id1\t13
LongValueSum:id2\t1
UniqValueCount:id3\tval1
UniqValueCount:id3\tval2

O redutor calculará a soma de cada longValuesum e contará os valores distintos para o UniqvaluEcount. A saída do redutor será, portanto,:

id1\t25
id2\t12
id3\t2

Os redutores e combinadores deste pacote são muito rápidos em comparação com os combinadores e redutores de streaming de execução, portanto, o uso do pacote agregado é conveniente e rápido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top