Spark

O que é Apache Spark?

Apache Spark é uma estrutura de código aberto que simplifica o desenvolvimento e a eficiência dos trabalhos de análise de dados. Ele oferece suporte a uma ampla variedade de opções de API e linguagem com mais de 80 operadores de transformação e ação de dados que ocultam a complexidade da computação em cluster. 

Quem criou e mantém o Spark?

Um grupo de desenvolvedores de mais de 300 empresas criou o Spark e uma vasta comunidade de usuários contribui para seu refinamento contínuo. Ele é usado por organizações em uma ampla variedade de setores e sua comunidade de desenvolvedores é a maior em Big Data.

Soluções, produtos ou serviços relacionados da HPE

Por que o Spark é popular?

Com velocidades relatadas 100 vezes mais rápidas do que mecanismos de análise semelhantes, o Spark pode acessar fontes de dados variáveis e ser executado em várias plataformas, incluindo Hadoop, Apache Mesos, Kubernetes, de forma independente ou na nuvem. Seja processando dados em lote ou streaming, você verá um desempenho de alto nível devido ao agendador Spark DAG de última geração, um otimizador de consulta e um mecanismo de execução física.

Por que o Spark é potente?

A capacidade distinta do Spark vem de seu processamento na memória. Ele usa um pool distribuído de nós com muita memória e codificação de dados compacta, juntamente com um planejador de consulta otimizado para minimizar o tempo de execução e a demanda de memória.

Como o Spark executa cálculos na memória, ele pode processar dados até 100 vezes mais rapidamente do que estruturas que processam em disco. É a ferramenta preferida para processar os grandes volumes de dados necessários para análise e modelos de treinamento para machine learning e IA.

Além disso, ele executa uma pilha de bibliotecas nativas que fornecem machine learning especializado e estruturas de dados semelhantes a SQL, permitindo que você obtenha um desempenho excepcional com grandes conjuntos de dados. E com mais de 80 operadores de alto nível, o Spark facilita a criação de aplicativos paralelos.

De onde veio o Spark?

Em 2009, na Universidade da Califórnia, no AMPLab de Berkeley, o que começou como alguns trabalhos de pesquisa de pós-graduação logo floresceu no que hoje é conhecido como Spark. Em 2010 tivemos o início do Spark de código aberto do AMPLab e de uma colaboração mais ampla. Em 2013, a comunidade Spark cresceu tanto que entrou para a Apache Software Foundation.

Desde então, mais de 1.200 desenvolvedores de centenas de organizações ajudaram o Spark a continuar a evoluir e se tornar a interface poderosa que é hoje. Na verdade, mais de 1.000 organizações usam o Spark na produção, de acordo com uma pesquisa de 2016.

O que difere o Spark do Hadoop?

Spark e Hadoop têm algumas semelhanças. Ambos são estruturas de código aberto para processamento de dados analíticos; ambos estão na Apache Software Foundation; ambos contêm bibliotecas de machine learning; e ambos podem ser programados em várias linguagens diferentes, como Java, Python, R ou Scala.

No entanto, o Spark foi escrito para estender o número de cálculos possíveis com o Hadoop, então a verdadeira comparação é como o Spark aprimora o componente de processamento de dados nativo do Hadoop, conhecido como MapReduce.

Por exemplo, o Hadoop processa dados apenas em lotes, enquanto o Spark processa em lotes e streaming de dados em tempo real. Além disso, embora ambos tenham bibliotecas de machine learning, apenas o Spark executa funções de processamento usando dados na memória, o que o torna muito mais rápido que o Hadoop. Por fim, a maior diferença entre o Spark e o Hadoop está na eficiência. Hadoop usa um processo de execução de dois estágios, enquanto o Spark cria Gráficos Acíclicos Dirigidos (DAGs) para agendar tarefas e gerenciar nós de trabalho para que o processamento possa ser feito simultaneamente e, portanto, com mais eficiência.

Benefícios do Apache Spark

O Spark tem muitas vantagens sobre outras estruturas. Ele fornece análises avançadas em um formato fácil de usar com a flexibilidade e a capacidade de expansão necessárias para acelerar a velocidade e a eficiência do processamento. Estes são alguns dos benefícios:

Velocidade

Como os dados são organizados para dimensionar o processamento na memória em nós de cluster distribuídos e como o Spark pode fazer o processamento sem ter que gravar dados de volta no armazenamento em disco, ele pode executar até 100 vezes mais rapidamente que o MapReduce em trabalhos em lote ao processar na memória e dez vezes mais rapidamente no disco. 

 

Diversas linguagens

Escrito em Scala, o Spark também vem com conectores de API para usar Java e Python, bem como um pacote de programação R que permite aos usuários processar conjuntos de dados muito grandes exigidos por cientistas de dados. 

Facilidade de uso

Devido à maneira mais eficiente do Spark de distribuir dados entre nós e clusters, ele pode realizar processamento paralelo de dados e abstração de dados. E sua capacidade de unir vários tipos de bancos de dados e computar dados de vários tipos de armazenamentos de dados permite que ele seja usado em vários casos de uso. 

Energia

O Spark pode lidar com um grande volume de dados – até vários petabytes, de acordo com os envolvidos. E ele permite que os usuários realizem análises exploratórias nesses dados em escala de petabytes sem precisar reescalonar.

Análises avançadas

O Spark vem com várias bibliotecas de código para executar aplicativos de análise de dados. Por exemplo, o MLlib possui código de machine learning para operações estatísticas avançadas e a biblioteca Spark Streaming permite que os usuários analisem dados em tempo real. 

Maior acesso a Big Data

O Spark separa armazenamento e computação, o que permite que os clientes dimensionem cada um para acomodar as necessidades de desempenho dos aplicativos de análise. E executa tarefas em lote com perfeição para mover dados para um data lake ou armazém de dados para análises avançadas.

Qualidades dinâmicas

O Spark inclui ferramentas para ajudar os usuários a dimensionar dinamicamente os nós para se ajustarem às mudanças nas cargas de trabalho. E, no final de um ciclo de processamento, realocar nós automaticamente é mais fácil no Spark.

Demanda por desenvolvedores Spark

À medida que as empresas exigem um processamento de análise cada vez mais rápido para se manterem competitivas, a demanda por desenvolvedores Spark está aumentando. E com o machine learning sob demanda tomando o mercado, aqueles que podem facilitar aceleradores de deep learning e tecnologias de IA são essenciais.

O que é Spark Framework?

Quando os desenvolvedores que usam Java ou Kotlin desejam desenvolver aplicativos web mais expressivos com boilerplate limitado, eles geralmente recorrem ao Spark Framework. Com uma sintaxe declarativa e expressiva, o Spark foi projetado para um processo de desenvolvimento rápido mais produtivo para permitir uma melhor codificação.

Como uma microestrutura, o Spark permite que os desenvolvedores aproveitem ao máximo a Máquina Virtual Java (JVM) com um processo menos complicado. E o Spark tem uma sintaxe de código tão concisa, que a codificação com ele é muito mais simplificada do que com outras estruturas Java da web.

Além disso, a linguagem Spark Framework foi projetada para ser executada no lado do servidor com tipos já integrados. Isso ajuda os desenvolvedores NodeJS que usam linguagens de tipagem estática que compilam para JavaScript, como TypeScript, e estão ocupando cada vez mais desenvolvimento web do lado do servidor.

O Spark opera com várias estruturas de dados que o tornam uma estrutura mais poderosa do que outras alternativas. Elas incluem RDDs, DataFrames, Datasets, Tungsten e GraphFrames, descritas abaixo:

 

  • RDDs (Resilient Distributed Datasets): RDDs distribuem dados entre clusters, permitindo uma variedade simultânea de tarefas de processamento. Em caso de falha de qualquer nó em um cluster, as tarefas podem ser recalculadas para que as ações possam continuar sem intervenção.
  • DataFrames: DataFrames organizam dados em colunas para operações SQL. Eles não fornecem segurança de tipo de dados, embora isso seja abordado nos próprios datasets.
  • Datasets: Datasets também organizam os dados em colunas para consultas SQL. Eles fornecem medidas de segurança de tipo de dados.
  • Tungsten: A estrutura de dados Tungsten é uma adição mais recente que foi introduzida para aprimorar o desempenho do Spark para níveis de desempenho bare-metal. Ele visa gerenciamento de memória, processamento binário, geração de código e desenvolvimento de algoritmo para processamento mais rápido.
  • GraphFrames: Com a estrutura de dados GraphFrames, você pode executar consultas de gráfico, que são executadas na memória para velocidades de desempenho superior.

Ao combinar essas cinco estruturas de dados, o Spark pode preparar dados e fornecer análises e pesquisas descritivas como outras estruturas. Ao mesmo tempo, também fornece análise preditiva, machine learning e processamento de gráficos que permitem que as empresas tomem decisões mais rápidas e informadas.

O que a HPE oferece para maximizar o desempenho do Spark?

As empresas que buscam uma estratégia com prioridade para os dados podem usar qualquer número de soluções HPE para ajudar a liberar o valor de seus dados em implantações no local, multicloud ou de borda. Liderando a transformação digital, a HPE oferece serviços inovadores que integram o Spark aos notebooks para acelerar o machine learning e as cargas de trabalho de IA, reduzindo o tempo para insights que agregam valor aos negócios.

Por exemplo, HPE Ezmeral é uma plataforma elástica que dimensiona as cargas de trabalho do Apache Spark com um plano de controle de vários locatários, aceleração de GPU, isolamento e controle completos e ferramentas de análise de dados pré-criadas. O HPE Ezmeral é o primeiro Data Lakehouse que traz recursos nativos da nuvem para análise no local, machine learning e IA. Testes recentes mostram que as GPUs HPE Ezmeral, NVIDIA RAPIDS e Tensor Core A100 aceleram as cargas de trabalho Spark AI e ETL em 29x. [i]

Além disso, a HPE introduziu recentemente HPE Ezmeral Unified Analytics, que é uma plataforma de Data Lakehouse em nuvem pioneira do setor que integra o Spark como parte de sua pilha opinativa junto com outras ferramentas de código aberto de primeira classe. HPE Ezmeral Unified Analytics também está disponível no HPE GreenLake.  

 

[1] A HPE padronizou nossos modelos de teste com base em benchmarks de Big Data, aproveitando os pods Kubernetes gerenciados por HPE Ezmeral, GPUs NVIDIA A100 de 40 GB e HPE ProLiant DL385 Gen10 Plus v2.