A estrutura lida com todas as coisas difíceis:
Este padrão é usado em todos os lugares:
Pesquisa na Web:
Análise de registro:
Aprendizado de máquina:
Comércio eletrônico:
1. Go tem goroutines – threads leves que simplificam a simultaneidade:
Quando vários trabalhadores acessam dados compartilhados, precisamos de bloqueios para evitar o caos:
Sem fechaduras:
Com fechaduras:
E se um trabalhador travar?Usamos uma função hash para decidir qual redutor lida com quais palavras:
O trabalhador 0 relata:
Enquanto isso, outros trabalhadores fazem o mesmo:
Tudo isso acontece ao mesmo tempo!Os usuários desta estrutura MapReduce só precisam escrever duas funções:
“Divida o texto em palavras, emita cada palavra contando 1”
“Conte quantos valores obtivemos”
É isso!Exemplo: Processando o texto “foo bar baz foo”
Cada palavra se torna uma chave e atribuímos a ela o valor “1” (o que significa que a vimos uma vez).
Fonte: https://jitesh117.github.io/blog/implementing-mapreduce-in-golang/
