Home  >  Inovação

Hadoop ou Spark? Veja qual se aplica melhor para a sua empresa

Confira os prós e os contras, fornecedores, clientes e casos de uso...

CIO Brasil

11/07/2016 às 8h00

hadoop_vs_spakr.jpg
Foto:

Em primeiro lugar, é importante notar que o Hadoop e Spark são tecnologias diferentes, com diferentes casos de uso. Berço das duas tecnologias, a própria Apache Software Foundation as aloca em categorias diferentes: Hadoop é um banco de dados, o Spark é uma ferramenta de Big Data.

Nas próprias palavras de Apache, o Hadoop é "um framework para desenvolvimento de aplicações distribuidas", com alta escalabilidade, confiabilidade e tolerância a falhas, subdivido em três projetos: Hadoop Commons, Hadoop Distribuited File System e Hadoop MapReduce.

Na grande maioria dos casos, quando alguém fala sobre Hadoop está se referindo ao Hadoop Distributed File System (HDFS), um sistema de arquivos distribuídos projetado para armazenar arquivos muito grandes e rodar em hardware padrão, de baixo custo. Uma das suas características mais marcantes do HDFS é o fato de permitir que as aplicações trabalhem com milhares de nós em cluster. Há também o Hadoop FIO, uma ferramenta de gestão que permite que outras estruturas de processamento de dados rodem em Hadoop.

O Spark, por outro lado, é um framework para processamento de Big Data construído com foco em velocidade, facilidade de uso e análises sofisticadas. Oferece APIs de alto nível em Java, Scala e Python, bem como um conjunto de bibliotecas que o tornam capaz de trabalhar de forma integrada, em uma mesma aplicação, com SQL, streaming e análises complexas, para lidar com uma grande variedade de situações de processamento de dados.

Então como é possível compará-los?

Ambos são estruturas de Big Data. Basicamente, se você é uma empresa com rápido crescimento de dados, Hadoop é um software de código aberto que lhe permitirá armazenar esses dados de forma confiável e segura. E Spark, uma ferramenta para a compreensão dos dados. Se Hadoop é a Bíblia escrita em russo, Spark é um dicionário de russo.

A escolha realmente se resume ao que você quer fazer com os seus dados e ao conjunto de habilidades da sua equipe de TI.

Uma vez que seus dados estejam em Hadoop há muitas maneiras de extrair valor a partir dele. Tanto que grandes players do mercado de análise e inteligência têm investido na integração de seus produtos com o Hadoop. O mesmo vale para grandes empresas do mercado de visualização de dados.

E se houver a necessidade da análise dos dados em tempo real, é o Spark entra em cena.

Hadoop vs Spark: prós e contras

Confiabilidade: Um dos principais benefícios com Hadoop é que, por ser uma plataforma distribuída, ele é menos propenso a falhas, permitindo que dados subjacentes estejam sempre disponíveis. Por isso que é o banco de dados escolhido de muitas empresas Web. Afinal de contas, a internet nunca dorme.

Custo: Hadoop e Spark são projetos da Apache Software Foundation, então eles são livres e open source. O preço varia de acordo com a implementação, o custo total de propriedade, o tempo e os recursos incluídos, de acordo com o hardware as habilidades necessárias. Isso também faz com que sejam altamente escaláveis .

O modelo de licenciamento de provedores de banco de dados tradicionais, como Oracle e SAP, tem sido a ruína de muitos CIOs, portanto, o modelo de Software-as-a-Service fornecido pela maioria dos especialistas em Hadoop/Sparc dá maior flexibilidade

Velocidade: O Sparc permite que aplicações em clusters Hadoop executem até 100 vezes mais rápido, segundo a fundação Apache. Isso ocorre porque o Spark funciona na memória e não em unidades de disco rígido. O MapReduce lê os dados do cluster, executa uma operação e escreve os resultados de volta no cluster, o que leva tempo, enquanto o Spark realiza essas tarefas em um só lugar e próximo ao tempo real, tornando o desempenho várias vezes mais rápido.

Generalidade: O Spark pode carregar dados de cada lugar:.. Couchbase, MySQL, Amazon S3, HDFS. Trabalha com todos os formatos que você espera trabalhar. Isso o torna muito versátil.

Competências: Indepentente do que digam, o Spark não é uma ferramenta fácil de usar. É destinado a analistas de dados e especialistas e é geralmente aplicado a análises complexas, a partir de conjuntos de dados de diversas naturezas (texto, grafos, etc), bem como de diferentes origens (batch ou streaming de dados em tempo real).

Hadoop vs Spark: Casos de Uso

Devido à sua capacidade de armazenar mais e mais dados, alguns usos clássicos do Hadoop incluem uma visão de 360 ​​graus dos seus clientes, mecanismos de recomendação para varejistas e de segurança e gestão de risco.

Mas varejistas e empresas de Internet das Coisas também estão interessados ​no Spark, por causa de sua capacidade de realizar análises de dados interativos em tempo real, para proporcionar uma maior personalização.

Na opinião do vice-presidente de estratégia do MongoDB, Kelly Stirman, a crescente popularidade do Spark se deve à sua compatibilidade com um caso de uso importante hoje: a aprendizado de máquina.

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.

Além da biblioteca MLib, do Spark, que consiste em algoritmos de aprendizado de máquina, o recém anunciado Sparkling Water 2.0 é projetado para tornar mais fácil para as empresas usuárias do Spark o uso de algoritmos de aprendizado de máquina em suas análises. Essencialmente, trata-se de uma API que permite que os usuários do Spark possam utilizar a plataforma de inteligência artificial da H2O.ai, em vez de - ou ao lado de - os algoritmos incluídos na própria biblioteca de aprendizado de máquina MLlib.

Hadoop vs Spark: Clientes

Em um sentido amplo, um fornecedor especialista em Hadoop, como o Hortonworks, alega que trabalha com 55 das 100 maiores empresas de serviços financeiros e 75 das 100 maiores varejistas. Casos de uso reais são mais difíceis de encontrar, talvez porque a tecnologia não esteja tão madura quanto os vendedores nos levam a crer.

A inovadora Tesla, usa Hadoop para trabalhar com dados gerados por seus veículos conectados. A Expedia também vem movendo seus dados para Hadoop, para ganhar escala. E a British Airways é um grande clientes do Hadoop para armazenamento e análise de dados.

Já a americana MyFitnessPal aparece como uma das grandes usuárias do Spark. A Sefense Advanced Research Projects Agency — DARPA, também.

A maioria dessas corporações quer alcançar um nível de auto-serviço no uso do Hadoop.Spark.

Hadoop vs Spark: Vendedores

É possível implementar Hadoop in-house - a Apache fornece toda a documentação necessária - ou você pode escolher um fornecedor para realizar uma implantação corporativa, incluindo suporte. Com o Spark acontece o mesmo.

Em dezembro de 2015, o Gartner mapeou sete fornecedores que oferecem edições comerciais do Hadoop: Amazon, IBM, Pivotal, Transwarp, Hortonworks, Cloudera, MapR. Fornecedores como a Databricks,Couchbase, MongoDB, DataStax, Basho e MemSQL trabalham com o Spark. A IBM também tem investido fortemente na Spark.

Na sua visão do mercado para distribuições Hadoop, os analistas do Gartner Nick Heudecker, Merv Adrian e Ankush Jain afirmam que "são esperadas mudanças no ecossistema Hadoop com os grandes fornecedores de sistemas de gestão de informação, como IBM (que oferece a sua própria distribuição), Microsoft, Oracle, SAP e Teradata estarem investindo a integração com a tecnologia.

"Essas gigantes estão incorporando hadoop em seu portfólio para processamento de fluxo de dados, análise, sistemas de gerenciamento de banco de dados (SGBD), federação e integração de dados, gerenciamento de metadados, segurança e governança. Os distribuidores Hadoop também estão adicionando estas capacidades, quer através de parcerias ou os esforços de desenvolvimento gerenciado".

Hadoop vs Spark: Conclusão

Apesar de sua relativa maturidade, em comparação com o Spark, o Hadoop ainda não está gerando resultados transformadores. De acordo com o guia de mercado do Gartner, "Até 2018, 70% das implantações Hadoop não vão conseguir cumprir os objetivos de redução de custo geração de receitas devido a desafios de integração e falta de mão de obra qualificada."

Dentre os motivos que barram o avanço da tecnologia figuram questões como a dificuldade de medir (e encarar) os desafios da utilização das ferramentas para gerar valor aos negócios e ausência de habilidades para conduzir projetos.

A pesquisa, conduzida entre fevereiro e março, revelou que 54% das empresas pesquisada não pretende investir na tecnologia até 2017, “apesar do hype e de casos reportando sucesso no uso”, avalia o analista Nick Heudecker.

O Spark, por outro lado, tem o potencial para ser verdadeiramente transformador para o tipo certo de empresas com a experiência relevante em uso do Big data. Como Gartner coloca: "o Spark emergiu como uma força potencialmente prejudicial para Hadoop, como Hadoop foi para os sistemas de gestão de banco de dados tradicionais."

Embora alguns departamentos de TI podem se sentir compelidos a escolher entre Hadoop e Spark, o fato é que provavelmente, muitas empresas usarão os dois, por serem tecnologias complementares.

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.

É possível 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.

Mas o Sapark é 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.

Mas o 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.

Por fim, 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.

Tags

Deixe uma resposta