Visão Geral
Este Curso Apache Spark Application Performance Tuning, oferece os principais conceitos e conhecimentos que os desenvolvedores precisam para melhorar o desempenho de seus aplicativos Apache Spark. Você aprenderá como identificar fontes comuns de baixo desempenho em aplicativos Spark, técnicas para evitá-los ou resolvê-los , e práticas recomendadas para monitoramento de aplicativos Spark.
Objetivo
Após realizar este Curso Apache Spark Application Performance Tuning você será capaz de:
- Entenda a arquitetura do Apache Spark, a execução de trabalhos e como técnicas como execução lenta e pipeline podem melhorar o desempenho do tempo de execução
- Avalie as características de desempenho das principais estruturas de dados, como RDD e DataFrames
- Selecione os formatos de arquivo que fornecerão o melhor desempenho para sua aplicação
- Identifique e resolva problemas de desempenho causados pela distorção de dados
- Use particionamento, bucketing e otimizações de junção para melhorar o desempenho do SparkSQL
- Entenda a sobrecarga de desempenho de RDDs, DataFrames e funções definidas pelo usuário baseados em Python
- Aproveite o cache para melhor desempenho do aplicativo
- Entenda como funcionam os otimizadores Catalyst e Tungsten
- Entenda como o Workload XM pode ajudar a solucionar problemas e monitorar proativamente o desempenho dos aplicativos Spark
- Novos recursos no Spark e especificamente como o mecanismo Adaptive Query Execution melhora o desempenho
Publico Alvo
- Desenvolvedores de software, engenheiros e cientistas de dados que têm experiência no desenvolvimento de aplicativos Spark e desejam aprender como melhorar o desempenho de seus códigos.
Pre-Requisitos
- Exemplos do Spark e exercícios práticos são apresentados em Python e é necessária a capacidade de programar nesta linguagem.
- É assumida familiaridade básica com a linha de comando do Linux.
- O conhecimento básico de SQL é útil.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico
Spark Architecture
- RDDs
- DataFrames and Datasets
- Lazy Evaluation
- Pipelining
Data Sources and Formats
- Available Formats Overview
- Impact on Performance
- The Small Files Problem
Inferring Schemas
- The Cost of Inference
- Mitigating Tactics
Dealing With Skewed Data
- Recognizing Skew
- Mitigating Tactics
Catalyst and Tungsten Overview
- Catalyst Overview
- Tungsten Overview
Mitigating Spark Shuffles
- Denormalization
- Broadcast Joins
- Map-Side Operations
- Sort Merge Joins
Partitioned and Bucketed Tables
- Partitioned Tables
- Bucketed Tables
- Impact on Performance
Improving Join Performance
- Skewed Joins
- Bucketed Joins
- Incremental Joins
Pyspark Overhead and UDFs
- Pyspark Overhead
- Scalar UDFs
- Vector UDFs using Apache Arrow
- Scala UDFs
Caching Data for Reuse
- Caching Options
- Impact on Performance
- Caching Pitfalls
Workload XM (WXM) Introduction
- WXM Overview
- WXM for Spark Developers
What's New in Spark 3.0
- Adaptive Number of Shuffle Partitions
- Skew Joins
- Convert Sort Merge Joins to Broadcast Joins
- Dynamic Partition Pruning
- Dynamic Coalesce Shuffle Partitions
TENHO INTERESSE