Cinco coisas que você precisa saber sobre Hadoop e Apache Spark
Geralmente vistos como concorrentes no mercado de Big Data, começa a ser formar um 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.