Relação entre MapReduce e outros componentes
Relação entre MapReduce e HDFS
- O HDFS possui alta tolerância a falhas e alta taxa de transferência e pode ser implementado em hardware de baixo custo para armazenar dados de aplicações com conjuntos de dados massivos.
- MapReduce é um modelo de programação usado para computação paralela de grandes conjuntos de dados (maiores que 1 TB). Os dados computados pelo MapReduce vêm de várias fontes de dados, como FileSystem locais, HDFS e bancos de dados. A maioria dos dados vem do HDFS. A alta taxa de transferência do HDFS pode ser usada para ler dados massivos. Depois de ser computados, os dados podem ser armazenados no HDFS.
Relação entre MapReduce e Yarn
MapReduce é uma estrutura de computação em execução no Yarn, que é usado para processamento em lote. O MRv1 é implementado com base no MapReduce no Hadoop 1.0, que é composto por modelos de programação (novas e antigas APIs de programação), ambiente de execução (JobTracker e TaskTracker) e mecanismo de processamento de dados (MapTask e ReduceTask). Essa estrutura ainda é fraca em escalabilidade, tolerância a falhas (SPOF de JobTracker) e compatibilidade com várias estruturas. (Atualmente, apenas a estrutura de computação MapReduce é suportada.) O MRv2 é implementado com base no MapReduce no Hadoop 2.0. O código-fonte reutiliza modelos de programação MRv1 e implementação do mecanismo de processamento de dados, e o ambiente de execução é composto por ResourceManager e ApplicationMaster. O ResourceManager é um novo sistema de gerenciamento de recursos, e o ApplicationMaster é responsável por cortar dados de jobs do MapReduce, atribuir tarefas, solicitar recursos, agendar tarefas e tolerar falhas.