Machine Learning em larga escala com Apache Spark

2 min de leitura
Patrocinado
Imagem de: Machine Learning em larga escala com Apache Spark
Avatar do autor

Na terceira edição do Talks'n'Labs, Vanderlei Munhoz, Software Developer & Advocate da IBM Brasil, apresentou a palestra "Machine Learning em larga escala com Apache Spark".

Os tópicos abordados nessa apresentação foram:

  • Linguagem de programação Scala

  • Abordagem MapReduce

  • Projeto Hadoop

  • Projeto Spark

  • IBM Cloud Pak for Data e Watson Studio

  • Principal Component Analysis, Random Forests, K-Fold Cross-Validation e Grid Search com Apache Spark

  • Resultados e comentários finais

Quer entender de forma resumida todos esses tópicos e aprender mais sobre os temas tratados nessa apresentação? É só continuar a leitura deste artigo.

Lembrando que esta publicação recebe o apoio do IBM Blue Profile, uma plataforma que ajuda programadores e outros profissionais de TI a definir o rumo de suas carreiras. Se você trabalha na área ou está pensando em ingressar nessa carreira, deveria considerar seriamente visitar o site, adicioná-lo aos seus favoritos e visitá-lo com frequência.

Linguagem Scala

Entenda um pouco sobre a linguagem Scala.Entenda um pouco sobre a linguagem Scala.Fonte: Vanderlei Munhoz

Criada em 2001 por Martin Odersky, Scala é baseada na Java Virtual Machine (JVM), ou "Máquina Virtual Java" (em tradução livre), e trata-se de uma linguagem multiplataforma. Ela foi criada principalmente para programação funcional e tem um excelente suporte para programação concorrente.

Esses são os motivos que fazem com que a Scala seja muito usada na área de Ciência de Dados, especialmente com workloads muito grandes. Inclusive, o Spark é desenvolvido nessa linguagem assim como diversas ferramentas que também trabalham com grande quantidade de dados.

Abordagem MapReduce

A abordagem MapReduce é uma boa forma de lidar com tarefas paralelas.A abordagem MapReduce é uma boa forma de lidar com tarefas paralelas.Fonte: Vanderlei Munhoz

Embora tenha sido popularizada com o projeto Hadoop, a abordagem MapReduce já existia no mundo da Ciência da Computação há muito tempo. Trata-se de uma abordagem para processamento de tarefas paralelizáveis, ou seja, que podem ser realizadas em paralelo.

Por meio dessa abordagem, as tarefas são distribuídas em um grande número de computadores. Um bom exemplo é a contagem de palavras em uma sentença qualquer. A partir de uma entrada, partes da frase são divididas (split), mapeadas e finalmente reduzidas para se chegar ao resultado esperado.

Como as tarefas são realizadas de modo paralelo, é possível acelerar de forma considerável o workflow de atividades.

Projeto Hadoop

O projeto Hadoop possui limitações que foram superadas.O projeto Hadoop possui limitações que foram superadas.Fonte: Vanderlei Munhoz

Lançado em 2006, o Hadoop foi escrito em Java, e o seu objetivo era dar uma base ou um framework para os programadores conseguirem trabalhar de maneira distribuída. Por conta disso, esse projeto oferece gerenciadores de clusters com vários nós que vão realizar as operações pretendidas.

As desvantagens desse projeto estão relacionadas ao fato de o Hadoop usar um sistema de arquivos distribuído projetado para hardware comercial. Isso significa que ele não pode ser instalado em qualquer computador. Além disso, cada operação é independente e requer tanto leitura quanto escrita no sistema de arquivos.

Apache Spark

O Apache Spark foi desenvolvido na linguagem Scala.O Apache Spark foi desenvolvido na linguagem Scala.Fonte: Vanderlei Munhoz

Muito mais moderno e recente que o Hadoop, o Apache Spark foi lançado em 2014 e foi completamente desenvolvido em Scala. Todas as operações são executadas em memória RAM por meio de uma abstração chamada Resilient Distributed Dataset (RDD). Nesse modelo, as operações não são independentes e são computadas apenas quando necessário.

No Apache Spark, todas as tarefas são um Directed Acyclic Graph (DAG), que basicamente é um grafo direcionado. Não existem loops, e o caminho de processamento é sempre bem-definido. Esse modelo é uma generalização restrita do modelo MapReduce.

...

Quer ler mais conteúdo especializado de programação? Conheça o IBM Blue Profile e tenha acesso a matérias exclusivas, novas jornadas de conhecimento e testes personalizados. Confira agora mesmo, consiga as badges e dê um upgrade na sua carreira.

Machine Learning em larga escala com Apache Spark