Visão geral dos componentes Spark

Imagine que você tem 1000 tarefas em mãos e muito pouco tempo para concluir todas elas. Alguém oferece ajuda, fornecendo recursos que podem tirar algumas tarefas da sua mão e fazê-las paralelamente a você, para que todas as tarefas sejam concluídas no prazo. Que alguém é o Spark para você no sentido da computação. O Apache Spark é uma estrutura de computação de cluster de código aberto e distribuído para Big Data e fornece uma abordagem otimizada para executar análises em grandes conjuntos de dados. Ele funciona 100 vezes mais rápido que o Hadoop e fornece bibliotecas diferentes para diferentes propósitos, como executar operações SQL, ML, Streaming, processamento de gráficos, etc. Abaixo, veremos os diferentes componentes do spark em detalhes.

Principais componentes do Spark

Atualmente, temos 6 componentes no ecossistema Spark: Spark Core, Spark SQL, Spark Streaming, Spark MLlib, Spark GraphX ​​e SparkR. Vamos ver o que cada um desses componentes faz.

1. Spark Core

O Spark Core é, como o nome sugere, a unidade principal de um processo Spark. Ele cuida do agendamento de tarefas, recuperação de falhas, gerenciamento de memória e operações de entrada e saída, etc. Pense nisso como algo semelhante à CPU de um computador. Ele suporta linguagens de programação como Java, Scala, Python e R e fornece APIs para as respectivas linguagens, usando as quais você pode criar seu trabalho ETL ou fazer análises. Todos os outros componentes do Spark têm suas próprias APIs, construídas sobre o Spark Core. Por causa de seus recursos de processamento paralelo e computação na memória, o Spark pode lidar com qualquer tipo de carga de trabalho.

O Spark Core vem com um tipo especial de estrutura de dados chamada RDD (Resilient Distributed Dataset) que distribui os dados por todos os nós em um cluster. Os RDDs trabalham em um paradigma de avaliação preguiçoso, onde o cálculo é memorizado e executado apenas quando necessário. Isso ajuda a otimizar o processo, computando apenas os objetos necessários.

2. Spark SQL

Se você trabalhou com bancos de dados, entende a importância do SQL. Não seria extremamente esmagador se o mesmo código SQL funcionasse N vezes mais rápido, mesmo em um conjunto de dados maior? O Spark SQL ajuda a manipular dados no Spark usando SQL. Ele suporta conexões JDBC e ODBC que estabelecem uma relação entre objetos Java e bancos de dados existentes, data warehouses e ferramentas de inteligência de negócios. O Spark incorpora algo chamado Dataframes, que é uma coleção estruturada de dados na forma de colunas e linhas.

O Spark permite que você trabalhe nesses dados com o SQL. Os quadros de dados são equivalentes às tabelas relacionais e podem ser construídos a partir de bancos de dados externos, arquivos estruturados ou RDDs já existentes. Os quadros de dados têm todos os recursos do RDD, como imutável, resiliente e na memória, mas com um recurso extra de ser estruturado e fácil de trabalhar. A API Dataframe também está disponível em Scala, Python, R e Java.

3. Spark Streaming

O fluxo de dados é uma técnica em que um fluxo contínuo de dados em tempo real é processado. Requer uma estrutura que ofereça baixa latência para análise. O Spark Streaming fornece essa e também uma API escalável e de alto rendimento, tolerante a falhas, para processamento de dados em tempo real. É abstraído no fluxo discreto (DStream), que representa um fluxo de dados dividido em pequenos lotes. O DStream é baseado no RDD, fazendo com que o Spark Streaming funcione perfeitamente com outros componentes do spark. Alguns dos usuários mais notáveis ​​do Spark.

O streaming é Netflix, Pinterest e Uber. O Spark Streaming pode ser integrado ao Apache Kafka, que é uma plataforma de desacoplamento e buffer para fluxos de entrada. Kafka atua como o hub central para fluxos em tempo real que são processados ​​usando algoritmos no Spark Streaming.

4. Spark MLLib

A principal atração do Spark é aumentar a computação maciçamente e esse recurso é o requisito mais importante para qualquer projeto de aprendizado de máquina. O Spark MLLib é o componente de aprendizado de máquina do Spark, que contém algoritmos de aprendizado de máquina, como classificação, regressão, clustering e filtragem colaborativa. Também oferece um local para extração de recursos, redução de dimensionalidade, transformação, etc.

Você também pode salvar seus modelos e executá-los em conjuntos de dados maiores sem precisar se preocupar com problemas de dimensionamento. Ele também contém utilitários para álgebra linear, estatística e manipulação de dados. Devido ao processamento em memória do Spark, tolerância a falhas, escalabilidade e facilidade de programação, com a ajuda desta biblioteca você pode executar algoritmos iterativos de ML facilmente.

5. GraphX

O Graph Analytics é basicamente determinar as relações entre objetos em um gráfico, por exemplo, a menor distância entre dois pontos. Isso ajuda é a otimização de rota. A API Spark GraphX ​​ajuda no cálculo gráfico e paralelo ao gráfico. Ele simplifica a análise gráfica e a torna mais rápida e confiável. Uma das principais e conhecidas aplicações da análise de gráficos é o Google Maps.

Ele descobre a distância entre dois locais e fornece uma sugestão de rota ideal. Outro exemplo podem ser as sugestões de amigos do Facebook. GraphX ​​trabalha com gráficos e cálculos. O Spark oferece uma variedade de algoritmos gráficos, como classificação de página, componentes conectados, propagação de etiquetas, SVD ++, componentes fortemente conectados e contagem de triângulos.

6. SparkR

R é a linguagem estatística mais usada, que compreende mais de 10.000 pacotes para diferentes propósitos. Ele usou a API de quadros de dados, o que facilita o trabalho e também fornece visualizações poderosas para os cientistas de dados analisarem seus dados completamente. No entanto, R não suporta processamento paralelo e é limitado à quantidade de memória disponível em uma única máquina. É aqui que o SparkR entra em cena.

A Spark desenvolveu um pacote conhecido como SparkR, que resolve o problema de escalabilidade do R. É baseado em quadros de dados distribuídos e também fornece a mesma sintaxe que o mecanismo de processamento distribuído do R. Spark e a interatividade, pacotes e visualização sem paralelo de R combinados para dar aos cientistas de dados o que eles querem para suas análises.

Conclusão

Como o Spark é uma estrutura de uso geral, ele se encontra em uma ampla variedade de aplicações. O Spark está sendo amplamente utilizado na maioria dos aplicativos de big data, devido ao seu desempenho e confiabilidade. Todos esses componentes do Spark estão sendo atualizados com novos recursos a cada novo lançamento e facilitando nossas vidas.

Artigos recomendados

Este é um guia para os componentes Spark. Aqui discutimos a visão geral e os 6 principais componentes do spark com uma explicação detalhada. Você também pode consultar os seguintes artigos para saber mais -

  1. As 5 principais alternativas importantes do Hive
  2. Talend Open Studio Componentes / Ferramentas
  3. Os 6 principais componentes do ecossistema IoT
  4. O que é Integração de Dados Talend com Benefícios?

Categoria: