menu EXPLORAR
history NOVIDADES

O que é Apache Spark

Apache Spark é um framework projetado para gerenciar grandes quantidades de dados de forma distribuída, projetado para ser rápido e facilitar o uso de operações distribuídas como se estivesse trabalhando em um único nó.

É um projeto da fundação Apache, portanto é de código aberto. Muitos grupos estão por trás do desenvolvimento e manutenção do Apache Spark.

Além disso, permite a conexão com outros frameworks do ecossistema Hadoop como Kafka, Hbase ou Hive.

Para que serve o Spark no mundo do Big Data?

O século XXII é sem dúvida o século tecnológico dominado pela grande quantidade de dados gerados a cada segundo.

Muitos dos aplicativos que carregamos em nossos celulares coletam constantemente informações sobre nossas ações e localizações.

Tudo isso é armazenado em grandes data warehouses contendo milhões e milhões de entradas.

Como podemos extrair informações úteis de um enorme mar de dados?

Esse problema é resolvido com a tecnologia Big Data, da qual o Spark faz parte.

Essa incrível quantidade de informações não pode ser armazenada em um único computador, por isso é distribuída por diferentes computadores que chamamos de nós. O conjunto de nós é chamado de cluster.

Quando precisamos extrair informações temos que percorrer os dados encontrados nos diferentes nós do sistema. É aí que entra a função do Spark, facilitando essa tarefa que a princípio parece tão complicada.

Apache Spark nos permite orquestrar, distribuir e monitorar todos os nós para obter as informações necessárias para o nosso projeto.

O Spark carrega dados de um sistema de arquivos distribuído, como HDFS, e cria objetos chamados RDD (Resilient Distributed Datasets). Sobre estes objetos podemos estabelecer determinadas ações como pesquisas, junções ou agrupamentos para obter da base de dados as informações que nos interessam.

Ao agendarmos as ações, forma-se um gráfico acíclico direcionado (DAG) onde os nós são as operações que devem ser executadas. Porém, o Spark se caracteriza por possuir o que é conhecido como avaliação preguiçosa, de forma que as operações não são executadas até que um determinado evento seja acionado.

Um ponto muito importante do Spark é que se trata de um framework de utilização muito flexível, pois inclui diversas APIs que permitem sua utilização em diferentes linguagens de programação. As APIs incluídas são Scala, Java, Python, SQL e R.

Componentes principais do Apache Spark

CoreSpark

Spark Core é o coração do Spark e a partir do qual funcionam os demais componentes que veremos a seguir.

O Core é responsável por orquestrar e distribuir as tarefas do nó mestre para os demais nós. Isso funciona no YARN ou Mesos, que são as aplicações responsáveis ​​por gerenciar os recursos do cluster.

Streaming de faísca

Spark Streaming é uma extensão que permite o processamento de dados em tempo real. Vivemos numa sociedade orientada por dados, onde novas informações são geradas a cada segundo, por exemplo, nas redes sociais.

Muitas empresas estão interessadas em analisar em tempo real o que está acontecendo no mundo. O Spark Streaming se conecta a fontes de dados e processa essas informações para obter dados relevantes sobre o que está acontecendo a todo momento.

Faísca SQL

Spark SQL é um módulo que permite tratar tabelas de dados como um objeto chamado dataframe. Os dataframes podem ser criados a partir de múltiplas fontes de informação, como Avro, Parquet ou JDCB.

O Spark SQL permite fazer solicitações em SQL, facilitando a obtenção de dados já que o SQL é muito semelhante à linguagem natural dos humanos.

Faísca MLlib

MLlib (Machine Learning Library) é um módulo Spark que permite treinar modelos de aprendizado de máquina com dados armazenados em um sistema de arquivos distribuído, como HDFS.

Isso permite que modelos sejam gerados em conjuntos de dados ou conjuntos de dados com milhões e milhões de entradas, aumentando a precisão do modelo.

Algumas das tarefas de aprendizado de máquina que podem ser executadas com MLlib são:

  • Regressão
  • Classificação
  • Análise de valor central
  • Algoritmos baseados em árvores de decisão
  • Engenharia de dados
  • Limpeza de dados