Advanced spark programming expert

O primeiro programa avançado do Brasil que vai entregar tudo o que um desenvolvedor de aplicações em Spark precisa saber para dominar de forma completa a engine de processamento mais utilizada do mercado de dados.

Um conteúdo exclusivo que será um divisor de águas em sua carreira.

Chegou a hora de você se tornar uma referência em Apache Spark.

SAIBA COMO

Seu mentor: LUAN MORENO 🇧🇷🇨🇦

Sr. Cloud Consultant e Big Data Engineer
CEO e Fundador da Engenharia de Dados Academy

Reproduzir vídeo

METODOLOGIA DE ENSINO DESENVOLVIDA EXCLUSIVAMENTE PARA PROFISSIONAIS DE DADOS

Está a seu alcance, agora, o que existe de mais recente quando o assunto é Apache Spark em um formato de aprendizado extremamente didático, capaz de ser compreendido, assimilado e aplicado até mesmo por quem tem muita dificuldade para visualizar determinados conceitos e processos.

Nosso método de ensino tornará muito mais fácil para você visualizar, compreender e assimilar todo o conteúdo, tornando a aplicação no seu dia a dia e em seus jobs mais ágil e intuitiva.

Dê uma olhada na ementa e logo depois nos desenhos que estão na sequência (eles fazem parte do material exclusivo do curso), e você também chegará a essa conclusão!

EMENTA

DO CURSO

01
CHAPTER 01
Advanced Pillars_

Nesta aula, você aprenderá os pilares essenciais para identificar e resolver problemas em suas aplicações Spark. 

Compreender a arquitetura interna do Spark é fundamental para otimizar o desempenho e a eficiência das suas aplicações. Vamos explorar desde os fundamentos até os aspectos mais avançados da engine, garantindo que você tenha um entendimento profundo de como o Spark funciona por dentro.

Prepare-se para dominar os pilares avançados do Spark e levar suas habilidades ao próximo nível!

Foundations

Architecture

Entenda a estrutura interna do Spark e como seus componentes interagem.

Core Components

Explore os principais componentes que compõem o Spark.

Application Lifecycle

Saiba como as aplicações Spark são iniciadas, executadas e finalizadas.

Cluster Managers

Aprenda sobre os diferentes gerenciadores de cluster e como eles orquestram os recursos.

Jobs, Stages & Tasks

Descubra como o Spark divide o trabalho em jobs, estágios e tarefas.

Resource Allocation

Veja como o Spark aloca recursos para otimizar a execução das tarefas.

Deployment Options

Conheça as várias opções de deployment para suas aplicações Spark.

Scheduling Modes

Compreenda os modos de agendamento e como eles afetam a execução.

CPU, Memory Management & Estimation

Aprenda a gerenciar e estimar o uso de CPU e memória.

Metrics System

Utilize o sistema de métricas para monitorar e melhorar o desempenho.

Internals

MapReduce Programming Model

Explore o modelo de programação MapReduce e sua implementação no Spark.

RDDs

Entenda o papel dos RDDs (Resilient Distributed Datasets) no Spark.

Scala Operations

Descubra como utilizar operações Scala para manipular dados.

DataFrame

Trabalhe com DataFrames para manipular grandes volumes de dados de forma eficiente.

Query Execution

Saiba como o Spark executa consultas internamente.

Catalyst Optimizer

Explore o otimizador Catalyst e como ele melhora o desempenho das consultas.

Adaptive Query Execution

Aprenda sobre a execução adaptativa de consultas e como ela se ajusta dinamicamente às suas necessidades.

Nesta aula, você aprenderá os padrões de desenvolvimento mais utilizados e como coletar dados para debugar suas aplicações Spark de forma eficaz. 

Vamos explorar práticas recomendadas e armadilhas comuns, garantindo que suas aplicações sejam robustas e eficientes desde o desenvolvimento até a execução.

Common Patterns & Anti-Patterns

Efficient Data Partitioning

Estratégias para particionar dados de forma eficiente, melhorando a paralelização.

Caching Wisely

Como utilizar o cache de maneira inteligente para otimizar a performance.

Leveraging Data Locality

Aproveite a localidade dos dados para reduzir a latência e aumentar a eficiência.

Incremental Processing

Implementação de processamento incremental para dados em evolução contínua.

Overusing Collect

Evite o uso excessivo do collect para prevenir problemas de memória.

Ignoring Data Partitioning

Entenda os riscos de ignorar a partição de dados e como mitigá-los.

Misusing Broadcast Variables

Utilização correta das variáveis de broadcast para melhorar a performance.

Neglecting Data Serialization

Importância da serialização de dados e como fazê-lo corretamente.

Inefficient Joins

Técnicas para otimizar joins e melhorar a eficiência das consultas.

Operational Insights & Diagnostics

Web UI

Utilização da interface web do Spark para monitorar e debugar suas aplicações.

Spark Listener

Implementação de listeners para obter insights em tempo real sobre a execução das tarefas.

Spark Metrics System

Coleta e análise de métricas para identificar e resolver problemas de performance.

Spark Measure

Ferramentas para medir o desempenho das suas aplicações e identificar gargalos.

EFK Stack

Integração com o stack EFK (Elasticsearch, Fluentd, Kibana) para monitoramento e análise de logs.

Prometheus & Grafana

Uso de Prometheus e Grafana para visualização de métricas e monitoramento contínuo.

Aprenda a resolver os problemas mais complexos do Spark através de um estudo de caso real

Nesta aula, vamos realizar o tuning de aplicações Spark ao vivo, identificando, resolvendo e entregando pipelines de dados mais eficientes para diversos consumidores. 

Domine a arte de dissecar e solucionar problemas comuns no Spark, garantindo pipelines de dados robustos e eficientes e elevando a performance das suas aplicações a um novo patamar.

Troubleshooting The 5 Ss

Spill

Descubra como identificar e resolver problemas de spill, onde dados são escritos no disco devido à falta de memória.

Skew

Aprenda a detectar e corrigir desbalanceamentos na distribuição dos dados que causam gargalos de desempenho.

Shuffle

Entenda os desafios do shuffle, onde dados são redistribuídos entre nós, e como otimizar este processo.

Storage

Explore as melhores práticas de armazenamento para maximizar a eficiência e a rapidez do Spark.

Serialization

Resolva problemas de serialização que podem impactar significativamente a performance das suas aplicações.

Use-Case: Tuning & Optimizing an End-To-End Data Pipeline

Kubernetes

Veja como utilizar Kubernetes para gerenciar e escalar suas aplicações Spark.

S3

Integre o Amazon S3 como solução de armazenamento eficiente e escalável.

Apache Spark

Realize tuning e otimização do Apache Spark para pipelines de dados de ponta a ponta.

Delta Lake & Apache Iceberg

Utilize Delta Lake e Apache Iceberg para garantir transações ACID e otimizar a manipulação de grandes volumes de dados.

Trino

Explore o Trino para consultas rápidas e distribuídas em grandes conjuntos de dados.

Apache Airflow

Orquestre seus pipelines de dados com Apache Airflow, garantindo automação e confiabilidade.

Metabase

Visualize e analise os resultados dos seus pipelines de dados com Metabase, proporcionando insights valiosos para o negócio.

Descubra as melhores práticas para desenvolver aplicações batch e em tempo real com Spark, além de técnicas para garantir a qualidade do código em seu time de desenvolvimento. 

Aprenda a criar aplicações robustas e eficientes, utilizando métodos avançados para entregar soluções de alta qualidade.

Developing Data-Intensive Applications

Pattern for Developing PySpark & SQL Apps

Padrões recomendados para desenvolver aplicações eficientes com PySpark e SQL.

Data Validation & Quality Checks

Implementação de validação de dados e verificações de qualidade para garantir a integridade dos dados.

Developing using Functions

Utilização de funções para modularizar e organizar seu código de forma eficiente.

Adding Tests to Your Apps

Melhores práticas para adicionar testes às suas aplicações e garantir a robustez.

Using DataFrame Size Estimator

Ferramentas para estimar o tamanho dos DataFrames e otimizar a performance.

Stream Processing using Structured Streaming Techniques

Execution Internals

Compreenda os detalhes internos da execução de streams no Spark.

Apache Kafka Integration

Integração com Apache Kafka para processamento de dados em tempo real.

Event-Time & Late Data Handling

Técnicas para lidar com dados atrasados e processamento baseado no tempo do evento.

Fault Tolerance & Checkpoint

Implementação de tolerância a falhas e checkpoints para garantir a consistência dos dados.

Complex Event Processing Patterns {CEP}

Padrões para processamento de eventos complexos, proporcionando insights avançados.

Trigger Types & Window Operations

Utilização de diferentes tipos de triggers e operações de janela para processamento contínuo de streams.

Aprenda a utilizar o Spark juntamente com o conceito de Lakehouse, aplicando as melhores práticas para reduzir a quantidade de arquivos pequenos e otimizar a leitura e escrita em grande escala. 

Descubra quais recursos utilizar juntamente com o Kubernetes para reduzir custos em pipelines de dados, garantindo aplicações prontas para produção.

Domine a combinação de Spark e Lakehouse, aplicando as melhores práticas para implantações prontas para produção e otimização de custos em seus pipelines de dados!

Optimizing Data Storage, Formats & Lakehouse:

Data Lake

Entenda os fundamentos dos Data Lakes e como utilizá-los de forma eficaz.

Data Lakehouse & FairHouse

Explore o conceito de Data Lakehouse e suas vantagens sobre as arquiteturas tradicionais.

Apache Avro, Apache ORC, Apache Parquet

Conheça os formatos de dados otimizados para armazenamento e processamento eficientes.

Apache Iceberg

Utilize Apache Iceberg para gerenciar dados em grandes escalas com alta performance.

Delta Lake & Delta Omni

Implementação de Delta Lake para garantir transações ACID e otimizar a manipulação de dados.

OneTable

Ferramentas para simplificar o gerenciamento de dados distribuídos em um único ponto de acesso.

Solving Common Problems

Small & Big Files

Técnicas para reduzir arquivos pequenos e melhorar a eficiência do armazenamento.

Schema Evolution & Enforcement

Como gerenciar a evolução de esquemas e garantir a conformidade dos dados.

Transaction Management Control

Controle de transações para garantir a integridade e consistência dos dados.

Performance Optimization

Estratégias para otimizar o desempenho das suas operações de leitura e escrita.

Cost & Lifecycle Management

Gerenciamento de custos e ciclo de vida dos dados para operações eficientes.

Data Sharing & Data Consumers

Facilite o compartilhamento de dados e atenda às necessidades dos consumidores de dados.

Spark on Kubernetes for Production-Ready Deployments

Application Dependency

Gerencie dependências de aplicações para implantações robustas.

Spark Configuration

Configuração avançada do Spark para otimizar o desempenho e a escalabilidade.

Mounting Secrets & ConfigMaps

Integração de segredos e ConfigMaps para segurança e configuração dinâmica.

Mounting Volumes

Montagem de volumes para armazenamento persistente e eficiente

Dynamic Resource Allocation

Alocação dinâmica de recursos para otimizar o uso da infraestrutura.

Tolerations

Implementação de tolerâncias para gerenciar falhas e manter a resiliência.

Monitoring

Monitoramento contínuo das aplicações para garantir a saúde e desempenho.