Diferença entre o Hadoop e o MapReduce
As raízes do Hadoop datam de 2002, quando a Dough Cutting estava trabalhando em um projeto de código aberto chamado Nutch (que era usado para indexar as páginas da web e usar as páginas indexadas para pesquisa, a mesma coisa que o Google faz). Ele estava enfrentando problemas de escalabilidade, tanto em termos de armazenamento quanto de computação. Em 2003, o Google publicou o GFS (sistema de arquivos do google) e, em 2004, Nutch criou o NDFS (sistema de arquivos distribuído do Nutch). Depois que o Google anunciou o MapReduce como seu cérebro computacional por trás dos algoritmos de classificação, Dough conseguiu rodar o Nutch no NDFS e usou o MapReduce no ano de 2005 e no ano de 2006 nasceu o Hadoop.
Hadoop e MapReduce! O Hadoop é um ecossistema de projetos de código aberto, como o Hadoop Common, o sistema de arquivos distribuídos do Hadoop (HDFS), o Hadoop YARN e o Hadoop MapReduce. O Hadoop, como tal, é uma estrutura de código aberto para armazenar e processar grandes conjuntos de dados. O armazenamento é realizado pelo HDFS e o processamento é feito pelo MapReduce. O MapReduce, por outro lado, é um modelo de programação que permite processar enormes dados armazenados no Hadoop. Vamos entender o Hadoop e o MapReduce em detalhes nesta postagem.
Comparação cara a cara entre o Hadoop e o MapReduce (Infográficos)
Abaixo está a comparação top 5 entre o Hadoop e o MapReduce
Principais diferenças entre o Hadoop e o MapReduce
A seguir está a diferença entre o Hadoop e o MapReduce
- Se queremos diferenciar o Hadoop e o MapReduce em termos de leigos, podemos dizer que, o Hadoop é como o carro em que você tem tudo o que é necessário para percorrer distâncias, mas o MapReduce é como o motor do carro, portanto, sem o carro, um motor pode ' existe, mas o exterior do carro pode mudar (outros DFS (sistemas de arquivos distribuídos)).
- A idéia básica por trás do Hadoop é que os dados devem ser confiáveis e escalonáveis, confiáveis. No caso de um desastre ou falha na rede, os dados devem estar disponíveis o tempo todo, e isso é alcançado pela estrutura do Hadoop usando nós de nome e nós de dados.
- Alguma idéia básica de nós de dados e nós de nome
- A idéia básica por trás da arquitetura do nó de dados e do nó de nome é a arquitetura mestre / escravo, onde um armazena a localização dos dados (nó de nome) e o outro armazena os dados em si (nó de dados). Os dados são divididos em pedaços de 64 MB e salvos nos blocos de dados e o registro deles é mantido no Nó de Nome. Os dados são replicados três vezes por padrão, para confiabilidade. Falando sobre a escalabilidade, o hardware pode ser aumentado em movimento e isso ajuda a aumentar o armazenamento e tornar o sistema escalável.
- Agora, chegando ao MapReduce, há três fases
- Fase do Mapa
- Fase aleatória
- Reduzir fase
Vamos dar um exemplo para entender melhor. O MapReduce, sendo uma estrutura de programação, também possui um programa hello world, mas é conhecido como programa de contagem de palavras no MapReduce.
O programa Contagem de palavras fornece os pares de valores-chave da palavra e sua frequência em um parágrafo / artigo ou em qualquer fonte de dados. Para entendê-lo facilmente, tomemos o exemplo abaixo como exemplo.
No conjunto de dados, como podemos ver, temos três palavras ônibus, carro e trem. A coluna denominada Entrada possui os dados que temos no conjunto de dados, a coluna Saída possui os dados no estágio intermediário em que o embaralhamento ocorrerá.
Aqui estamos usando o divisor como vírgula (, ) para dividir as palavras. O divisor pode ser vírgula ou espaço ou uma nova linha etc.
Entrada | Conjunto de dados | carro, carro, ônibus, trem, ônibus, trem, ônibus, trem, ônibus, buS, carro, ônibus, carro, trem, carro, ônibus, carro |
Resultado | Converter em outro conjunto de dados
(Valor chave) | (Ônibus, 1), (Carro, 1), (Ônibus, 1), (Carro, 1), (Trem, 1),
(carro, 1), (ônibus, 1), (carro, 1), (trem, 1), (ônibus, 1), (TREM, 1), (ÔNIBUS, 1), (buS, 1), (caR, 1), (CAR, 1), (carro, 1), (ÔNIBUS, 1), (TREM, 1) |
E a saída do estágio intermediário acima é fornecida ao redutor e abaixo é a saída final do programa.
Entrada
(saída da função Mapa) | Conjunto de tuplas | (Ônibus, 1), (Carro, 1), (Ônibus, 1), (Carro, 1), (Trem, 1),
(carro, 1), (ônibus, 1), (carro, 1), (trem, 1), (ônibus, 1), (TREM, 1), (ÔNIBUS, 1), (buS, 1), (caR, 1), (CAR, 1), (carro, 1), (ÔNIBUS, 1), (TREM, 1) |
Resultado | Converte em um conjunto menor de tuplas | (ÔNIBUS, 7),
(CAR, 7), (TREM, 4) |
- Uma das principais diferenças do Hadoop com outras estruturas de processamento de big data é que o Hadoop envia o código (código MapReduce) para os clusters em que os dados são armazenados, em vez de enviá-los ao código, como os conjuntos de dados nos TBs ou, às vezes, nos PBs será uma tarefa tediosa de fazer.
Tabela de comparação Hadoop vs MapReduce
Base para Comparação | Hadoop | MapReduce |
Significado | O nome "Hadoop" era o nome do elefante de brinquedo do filho de Doug Cutting. Ele nomeou esse projeto como "Hadoop", pois era fácil pronunciá-lo. | O nome "MapReduce" passou a existir de acordo com a própria funcionalidade de mapeamento e redução em pares de valores-chave. |
Conceito | O Apache Hadoop é um ecossistema que fornece um ambiente confiável, escalável e pronto para computação distribuída. | O MapReduce é um submódulo deste projeto, que é um modelo de programação e é usado para processar grandes conjuntos de dados que ficam no HDFS (sistema de arquivos distribuídos Hadoop). |
Pré-requisitos | O Hadoop é executado em implementos HDFS (Hadoop Distributed File System) | O MapReduce pode ser executado no HDFS / GFS / NDFS ou em qualquer outro sistema de arquivos distribuído, por exemplo, MapR-FS |
Língua | O Hadoop é uma coleção de todos os módulos e, portanto, também pode incluir outras linguagens de programação / script | O MapReduce é basicamente escrito em linguagem de programação Java |
Estrutura | O Hadoop não apenas possui uma estrutura de armazenamento que armazena os dados, mas, ao criar nós de nome e de nó de dados, também possui outras estruturas que incluem o próprio MapReduce. | MapReduce é uma estrutura de programação que usa mapeamentos de chave e valor para classificar / processar os dados |
A figura abaixo ajudará a diferenciar o MapReduce do Hadoop.
Estrutura do MapReduce
- Como podemos ver na figura acima, o MapReduce é uma estrutura de processamento distribuído, enquanto o Hadoop é uma coleção de todas as estruturas.
Conclusão - Hadoop vs MapReduce
O Hadoop sendo de código aberto ganhou popularidade, pois era de uso gratuito e os programadores podem alterar o código conforme suas necessidades. O sistema ecológico Hadoop foi desenvolvido continuamente nos últimos anos para tornar o sistema ecológico o mais livre de erros possível.
Com as necessidades em constante mudança do mundo, a tecnologia muda rapidamente e torna-se difícil acompanhar as mudanças. Os dados que estão sendo gerados em um mês estão dobrando / triplicando à medida que você lê este artigo, e a necessidade de um processamento mais rápido de conjuntos de dados levou a muitas outras estruturas de programação, como MapReduce 2, Spark etc.
Artigos recomendados
Este foi um guia do Hadoop vs MapReduce, seu significado, comparação cara a cara, diferenças principais, tabela de comparação e conclusão. Você também pode consultar os seguintes artigos para saber mais -
- Diferença entre Hadoop e Redshift
- Descubra a 6 melhor diferença entre Apache Hadoop e Apache Storm
- Comparações entre Hadoop Vs SQL
- Conheça o MapReduce vs Spark
- Hadoop vs Spark: Funções
- Laravel vs Codeigniter: Funções