Apache Flink vs Spark – Será que um vai ultrapassar o outro?
Última Actualização: 25 Jan 2021
Apache Spark e Apache Flink são ambos de fonte aberta, estrutura de processamento distribuído que foi construída para reduzir as latências do Hadoop Mapreduce no processamento rápido de dados. Há uma concepção errada comum de que o Apache Flink vai substituir o Spark ou é possível que ambas as grandes tecnologias de dados ca n coexistam, servindo assim necessidades semelhantes a um processamento de dados rápido e tolerante a falhas. Apache Spark e Flink podem parecer semelhantes a alguém que não trabalhou com nenhuma destas duas tecnologias e está apenas familiarizado com o Hadoop, e é óbvio que eles vão sentir que o desenvolvimento do Apache Flink é na sua maioria supérfluo. Mas Flink conseguiu ficar à frente no jogo devido ao seu recurso de processamento de fluxo, que consegue processar linhas sobre linhas de dados em tempo real – o que não é possível no método de processamento em lote do Apache Spark. Isto faz Flink mais rápido que Spark.
De acordo com este estudo da IBM, estamos criando cerca de 2,5 quintilhões de bytes de dados todos os dias – e esta taxa de geração de dados continua a aumentar a um ritmo sem precedentes. Para colocar as coisas em outra perspectiva, cerca de 90% de todos os dados existentes neste mundo, foi criado nos últimos dois anos, embora a World Wide Web tenha sido acessível ao público por bem mais de duas décadas. Com o crescimento da Internet, o número de usuários e a crescente demanda por conteúdo abriram o caminho para a Web 2.0 na última década. Foi a primeira vez que os usuários puderam criar seus próprios dados na internet e eles estavam prontos para serem consumidos por um público faminto por dados.
Então foi a vez da mídia social invadir nossas vidas. De acordo com a reportagem do wersm (nós somos redes sociais), o Facebook recebe mais de 4 milhões de likes em um minuto! Os dados gerados por outras fontes populares são mencionados no infográfico (extraídos do mesmo estudo do wersm) antes de darmos uma olhada em como esses dados são consumidos.
“How to store these enormous amount of data?” foi uma declaração de problema que manteve os geeks tecnológicos ocupados durante a maior parte da década anterior. O aumento repentino das mídias sociais não tornou suas tarefas mais fáceis. No entanto, soluções de armazenamento da nova era, como o Cloud Computing, revolucionou a indústria e apresentou a melhor solução possível. Na presente década, a declaração do problema mudou para “O que fazer com enormes pedaços de dados?”. A Data Analytics surgiu como o objetivo final, mas antes disso, muito trabalho precisa ser feito para integrar dados armazenados em diferentes formatos em diferentes fontes e prepará-los para processamento e análise, o que é uma tarefa exigente.
Para a lista completa das grandes empresas de dados e seus salários – CLIQUE AQUI
Nossos dois tópicos de hoje – Apache Spark e Apache Flink – tentam responder a essa pergunta e mais.
Apache Spark
Spark é um framework de computação em cluster de código aberto que tem uma grande base global de usuários. É escrito em Scala, Java, R e Python e dá aos programadores uma Interface de Programação de Aplicações (API) construída sobre um tolerante a falhas, lendo apenas multiset de itens de dados distribuídos. Num curto período de 2 anos desde o seu lançamento inicial (Maio de 2014), tem tido uma grande aceitação em tempo real, in-memory, análises avançadas – devido à sua velocidade, facilidade de utilização e capacidade de lidar com requisitos analíticos sofisticados.
Se você quiser mais informações sobre carreiras de Big Data, por favor clique no botão laranja “Request Info” no topo desta página.
Vantagens da Faísca Spark
Afaísca Spark tem várias vantagens sobre as tecnologias tradicionais baseadas em Big Data e MapReduce. As que se destacam são. Basicamente leva o MapReduce para o próximo nível com um desempenho várias vezes mais rápido. Um dos principais diferenciais da Spark é sua capacidade de manter os resultados intermediários em memória, em vez de escrever de volta ao disco e ler a partir dele novamente, o que é crítico para casos de uso baseados em iteração.
- Velocidade – A Spark pode executar trabalhos de processamento em lote de 10 a 100 vezes mais rápido do que o MapReduce. Isso não significa que ele fica para trás quando os dados têm que ser escritos (e buscados) no disco, pois é o recordista mundial para classificação em grande escala no disco.
- Facilidade de Uso – Apache Spark tem APIs fáceis de usar, construídas para operar em grandes conjuntos de dados.
- Motor Unificado – Spark pode rodar em cima do Hadoop, fazendo uso de seu gerenciador de cluster (YARN) e armazenamento subjacente (HDFS, HBase, etc.). Entretanto, também pode rodar independentemente do Hadoop, unindo as mãos com outros gerenciadores de cluster e plataformas de armazenamento (como Cassandra e Amazon S3). Também vem com bibliotecas de nível superior – que suportam consultas SQL, aprendizagem de máquina e processamento gráfico.
- Escolha entre Java, Scala ou Python – Spark não o liga a uma linguagem em particular e permite-lhe escolher entre as mais populares como Java, Scala, Python, R e até mesmo Clojure.
- Partilha de dados na memória – Diferentes trabalhos podem partilhar dados dentro da memória, o que a torna uma escolha ideal para tarefas iterativas, interactivas e de processamento de eventos.
- Comunidade de utilizadores activa e em expansão – Uma comunidade de utilizadores activa levou a um lançamento estável do Spark (em Junho de 2016) dentro de 2 anos após o seu lançamento inicial. Isto fala muito da sua aceitação mundial, que está em ascensão.
Apache Flink
Alemão para ‘rápido’ ou ‘ágil’, o Apache Flink é o mais recente participante da lista de frameworks de código aberto focados em Big Data Analytics que estão tentando substituir o envelhecido MapReduce do Hadoop, assim como o Spark. Flink obteve sua primeira versão API-stable lançada em março de 2016 e foi construída para processamento em memória de dados em lote, assim como a Spark. Este modelo vem realmente a calhar quando é necessário fazer passes repetidos com os mesmos dados. Isso o torna um candidato ideal para a aprendizagem de máquinas e outros casos de uso que requerem aprendizagem adaptativa, redes de auto-aprendizagem, etc. Com o inevitável boom do espaço da Internet das Coisas (IoT), a comunidade de usuários Flink tem alguns desafios excitantes a esperar.
Vantagens do Flink
- Motor de processamento de fluxo real que pode aproximar o processamento em lote, ao invés de ser o contrário.
- Melhor gerenciamento de memória – O gerenciamento de memória explícito se livra dos picos ocasionais encontrados em Spark framework.
- Velocidade – Ele gerencia velocidades mais rápidas permitindo que o processamento iterativo ocorra no mesmo nó ao invés de ter o cluster rodando-os independentemente. Seu desempenho pode ser ainda mais ajustado ajustando-o para reprocessar apenas a parte dos dados que mudou ao invés de todo o conjunto. Ele oferece até cinco vezes mais velocidade quando comparado ao algoritmo de processamento padrão.
- Less configuration
Apache Flink vs Spark
No momento em que Flink apareceu, Apache Spark já era a estrutura de fato para requisitos analíticos de dados rápidos e in-memory grandes para um número de organizações ao redor do mundo. Isto fez o Flink parecer supérfluo. Afinal de contas, porque é que um exigiria outro motor de processamento de dados enquanto o júri ainda estava fora do existente? É preciso ir mais fundo nas capacidades do Flink para observar o que o distingue, embora vários analistas o tenham classificado como o “4G de Análise de Dados”.
Deeeextremamente embutido dentro das configurações do Flink é um pequeno ponto fraco que o Flink tem visado e está tentando capitalizar. Embora seja verdade para o propósito de discussões casuais, Spark não é puramente um motor de processamento de fluxo. Como observado por Ian Pointer no artigo ‘Apache Flink’ do InfoWorld: O novo concorrente do Hadoop se posiciona contra o Spark’, Spark é essencialmente uma operação rápida que funciona apenas em uma pequena parte dos dados recebidos durante uma unidade de tempo. Spark se refere a isto como “micro-batch” em sua documentação oficial. Esta questão é pouco provável que tenha qualquer significado prático nas operações a menos que o caso de uso exija baixa latência (sistemas financeiros) onde o atraso da ordem de milissegundos pode causar impacto significativo. Dito isto, Flink é praticamente um trabalho em progresso e ainda não pode reivindicar a substituição de Spark.
Flink é uma estrutura de processamento de fluxo que pode executar as tarefas que requerem processamento em lote, dando-lhe a opção de usar o mesmo algoritmo em ambos os modos, sem ter que recorrer a uma tecnologia como Apache Storm que requer baixa latência de resposta.
Both Spark e Flink suportam processamento in-memory que lhes dá uma vantagem distinta de velocidade em relação a outras estruturas. Quando se trata de processamento em tempo real de dados recebidos, Flink não suporta Spark, embora tenha a capacidade de realizar tarefas de processamento em tempo real.
Spark e Flink ambos podem lidar com iteratividade, no processamento de memória. Quando se trata de velocidade, Flink tem a vantagem de poder ser programado para processar apenas os dados que mudaram, que é onde sai em cima do Spark.
Contos de Crescimento – Spark e Flink
Any software framework precisa de mais do que conhecimentos técnicos para poder ajudar as empresas a obter o valor máximo. Nesta seção nós escavamos no artigo Apache Spark 2015 Ano em Revisão, da Databricks, para ver como ele se saiu na comunidade global de usuários e desenvolvedores. O ano teve 4 lançamentos (1.3 a 1.6), cada um com centenas de correções para melhorar a estrutura. O que chamou nossa atenção foi o crescimento no número de desenvolvedores contribuintes – de 500 em 2014 para mais de 1000 em 2015! Outra coisa notável sobre a Spark é a facilidade com que seus usuários fazem a transição para as novas versões. O relatório menciona que dentro de três meses a maioria dos usuários adotará o último lançamento. Estes fatos aumentam sua reputação como a ferramenta de dados de código aberto mais ativamente desenvolvida (e adotada).
Flink foi relativamente tarde para a corrida, mas o ano de 2015 em revisão em seu site oficial mostra porque ele está aqui para ficar como a mais completa estrutura de processamento de fluxo de código aberto disponível. O repositório github do Flink (Get the Repository – Aqui) mostra que a comunidade dobrou em tamanho em 2015 – de 75 contribuidores para 150. Os garfos do repositório mais do que triplicaram no ano e o número de estrelas do repositório também. Partindo de Berlim, Alemanha, viu a sua comunidade de utilizadores crescer através dos continentes para a América do Norte e Ásia. A Conferência Flink Forward foi outro marco para o Flink, que contou com a participação de mais de 250 participantes, onde mais de 100 participantes viajaram de todo o mundo para participar de palestras técnicas de organizações como Google, MongoDB, Telecom, NFLabs, RedHat, IBM, Huawei, Ericsson, Capital One, Amadeus e muitas outras.
Embora ainda seja cedo para destacar um destes dois como um claro vencedor, somos da opinião que em vez de ter muitas estruturas a fazer a mesma coisa, o mundo da tecnologia seria melhor servido se os novos participantes fizessem coisas diferentes e complementassem as existentes em vez de competir contra eles.
PREVIOUS |
NEXT |