Princípios básicos do MapReduce
O MapReduce é o núcleo do Hadoop. Como uma arquitetura de software proposta pelo Google, o MapReduce é usado para computação paralela de conjuntos de dados em larga escala (maiores que 1 TB). Os conceitos "Map" e "Reduce" e seus principais pensamentos são emprestados da linguagem de programação funcional e também emprestados dos recursos da linguagem de programação vetorial.
A implementação atual do software é a seguinte: especifique uma função Map para mapear uma série de pares chave-valor em uma nova série de pares chave-valor e especifique uma função Reduce para garantir que todos os valores nos pares chave-valor mapeados compartilhem a mesma chave.
MapReduce é uma estrutura de software para processar grandes conjuntos de dados em paralelo. A raiz do MapReduce é Map e as funções Reduce na programação funcional. A função Map aceita um grupo de dados e o transforma em uma lista de pares chave-valor. Cada elemento no domínio de entrada corresponde a um par chave-valor. A função Reduce aceita a lista gerada pela função Map e, em seguida, reduz a lista de pares chave-valor com base nas chaves. O MapReduce divide uma tarefa em várias partes e as aloca em diferentes dispositivos para processamento. Desta forma, a tarefa pode ser concluída em um ambiente distribuído em vez de um único servidor poderoso.
Para obter mais informações, consulte Tutorial do MapReduce.
Estrutura do MapReduce
Como mostrado em Figura 2, MapReduce é integrado ao YARN através das interfaces Cliente e ApplicationMaster do YARN e usa o YARN para solicitar recursos de computação.