Cinco coisas que você deve saber sobre Hadoop e Apache Spark
O consenso é de que eles são melhores juntos

As conversas sobre Big Data raramente excluem menções ao Hadoop ou ao Apache Spark. Geralmente
são conceitos vistos como concorrentes no mercado. Porém, agora, começa
a ser formar um consenso de que eles são melhores juntos. Confira a seguir o que eles fazem e como no que são comparáveis.
1. Fazem coisas diferentes. Hadoop e Spark são ambos
matrizes de Big Data, mas não têm as mesmas finalidades. O Hadoop é,
essencialmente, uma plataforma de computação distribuída que oferece
dois serviços importantes: pode armazenar qualquer tipo de dados, a um
custo baixo e em grande escala, ou pode realizar análises de dados
complexos rapidamente.
Diferente das plataformas tradicionais, o Hadoop é capaz de armazenar
qualquer tipo de dado no seu formato nativo e realizar, em escala, uma
variedade de análises e transformações sobre esses dados. Com uma grande
vantagem: baixo custo, já que é um software de código aberto que roda
em hardware comum.
O Spark, por outro lado, é um framework que implementa o conceito dos
RDDs (Resilient Distributed Datasets), permitindo o reuso de dados
distribuídos em uma variedade de aplicações, provendo um mecanismo
eficiente para recuperação de falhas em clusters; mas não faz
armazenamento distribuído.
2. Você pode usar um sem o outro. O Hadoop inclui
não apenas um componente de armazenamento, conhecido como o Hadoop
Distributed File System, mas também um componente de processamento
chamado MapReduce, de modo que você não precisa do Spark para
processamento. Por outro lado, você também pode usar o Spark sem o
Hadoop.
Como não conta com o seu próprio sistema de gerenciamento de
arquivos, precisa ser integrado a um. Se não for o HDFS, então outra
plataforma de dados baseada em cloud computing. Mas por ter sido
projetado para o Hadoop, muitos concordam que ambos funcionam melhor
juntos.
3. O Spark é mais rápido. O Spark é geralmente muito
mais rápido que o MapReduce devido à forma como processa os dados.
Enquanto o MapReduce opera em etapas, o Spark opera a partir de todo o
conjunto de dados de um só vez.
“O fluxo de trabalho do MapReduce acontece da seguinte forma: ler
dados do cluster, realizar uma operação, inscrever os resultados no
agrupamento, ler os dados atualizados a partir do agrupamento, realizar a
próxima operação, inscrever os resultados no cluster, e assim por
dainte”, explica Kirk Borne, cientista de dados da Booz Allen Hamilton.
O Spark, por outro lado, completa as operações de análise de dados na
memória e em tempo quase real. O processo? “Ler os dados do cluster,
realizar todas as operações analíticas necessárias, escrever os
resultados no cluster e fim de papo”, disse Borne. Por isso, o Spark
pode ser até 10 vezes mais rápido que o MapReduce para o processamento
em lote e até 100 vezes mais rápido para análises in-memory, explica
Borne.
4. Você pode não precisar da velocidade do Spark. O
estilo de processamento do MapReduce pode ser suficiente se as operações
de dados e requisitos de informação forem estáticos, em sua maioria e
for possível esperar pelo processamento em lote. Mas quando se precisa
fazer análise em fluxos contínuos de dados, como a partir de sensores em
um chão de fábrica, ou ter aplicações que requerem múltiplas operações,
você provavelmente vai dar preferência ao uso do Spark.
A maioria dos algoritmos de aprendizado de máquina, por exemplo,
requerem múltiplas operações. Aplicações comuns para o Spark incluem as
campanhas de marketing em tempo real, as recomendações de produtos
online, análise de segurança cibernética e monitoramento de log de
máquina.
5. Recuperações diferentes face a falhas. O Hadoop é
naturalmente resistente a quedas de sistema ou outras falhas, já que os
dados são gravados em disco depois de cada operação. O Spark tem uma
resiliência semelhante integrada, em virtude dos objetos virtuais de
dados serem armazenados em conjuntos de dados resilientes ‒ Resilient
Distributed Dataset (RDD) ‒, distribuídos por todo o “cluster” de dados.
“Esses objetos de dados podem ser armazenados na memória ou em
discos, e a estrutura RDD fornece a recuperação completa perante falhas
ou quedas [de sistemas]”, assinala Borne.
