Cloudera

Advanced Spark Application Performance Tuning

Presencial / Live Virtual Class     21 horas       1495,00 €   1046,50€

Acerca de este curso

La presente formación ofrece los conceptos clave y la experiencia que los desarrolladores necesitan para mejorar el rendimiento de sus aplicaciones de Apache Spark. Durante el curso, los participantes aprenderán a identificar fuentes comunes de bajo rendimiento en aplicaciones Spark, técnicas para evitarlas o solucionarlas y las mejores prácticas para el monitoreo de aplicaciones Spark.

El curso Apache Spark Application Performance Tuning presenta la arquitectura y los conceptos detrás de Apache Spark y la plataforma de datos subyacente, luego se basa en esta comprensión fundamental al enseñar a los estudiantes cómo ajustar el código de la aplicación Spark. El formato del curso enfatiza las demostraciones dirigidas por el instructor que ilustran tanto los problemas de rendimiento como las técnicas que los abordan, seguidos de ejercicios prácticos que brindan a los estudiantes la oportunidad de practicar lo que han aprendido a través de un entorno interactivo. El curso aplica a Spark 2.4, pero también presenta el marco de ejecución de consultas adaptable Spark 3.0.

PUE, Strategic Partner de Cloudera, está autorizado oficialmente por esta multinacional para impartir formación oficial en tecnologías Cloudera.

PUE está también acreditado y reconocido para realizar servicios de consultoría y mentoring en la implementación de soluciones Cloudera en el ámbito empresarial con el consiguiente valor añadido en el enfoque práctico y de negocio del conocimiento que se traslada en sus cursos oficiales.

A quién va dirigido

Este curso está diseñado para desarrolladores de software, ingenieros y científicos de datos que tienen experiencia en el desarrollo de aplicaciones Spark y desean aprender cómo mejorar el rendimiento de su código. Esta formación no es una introducción a Spark.

Prerrequisitos

Durante el transcurso de la formación se realizarán ejemplos con Spark y ejercicios prácticos utilizando Python, por lo que se requiere la capacidad de programar en este lenguaje de programación para un total aprovechamiento del curso. Se asume, por parte del alumno, una familiaridad básica con la línea de comandos de Linux y resultará de utilidad un conocimiento básico de SQL.

Objetivos del curso

Los estudiantes que completen con éxito este curso adquirirán las siguientes habilidades:

  • Comprender la arquitectura de Apache Spark, la ejecución de trabajos y cómo las técnicas como la ejecución diferida y la canalización pueden mejorar el rendimiento en tiempo de ejecución.
  • Evaluar las características de rendimiento de las estructuras de datos centrales como RDD y DataFrames.
  • Seleccionar los formatos de archivo que proporcionarán el mejor rendimiento para su aplicación.
  • Identificar y resolver problemas de rendimiento causados por la desviación de datos.
  • Utilizar optimizaciones de partición, agrupamiento y unión para mejorar el rendimiento de SparkSQL.
  • Comprender la sobrecarga de rendimiento de RDD basados en Python, DataFrames y funciones definidas por el usuario.
  • Aprovechar el almacenamiento en caché para un mejor rendimiento de la aplicación.
  • Comprender cómo funcionan los optimizadores Catalyst y Tungsten.
  • Comprender cómo Workload XM puede ayudar a solucionar problemas y monitorear proactivamente el desempeño de las aplicaciones Spark.
  • Conocer las nuevas funciones de Spark 3.0 y, específicamente, cómo el motor Adaptive Query Execution mejora el rendimiento.

Contenidos

Módulo 1: Spark Architecture

  • RDDs
  • DataFrames and Datasets
  • Lazy Evaluation
  • Pipelining

Módulo 2: Data Sources and Formats

  • Available Formats Overview
  • Impact on Performance
  • The Small Files Problem

Módulo 3: Inferring Schemas

  • The Cost of Inference
  • Mitigating Tactics

Módulo 4: Dealing With Skewed Data

  • Recognizing Skew
  • Mitigating Tactics

Módulo 5: Catalyst and Tungsten Overview

  • Catalyst Overview
  • Tungsten Overview

Módulo 6: Mitigating Spark Shuffles

  • Denormalization
  • Broadcast Joins
  • Map-Side Operations
  • Sort Merge Joins

Módulo 7: Partitioned and Bucketed Tables

  • Partitioned Tables
  • Bucketed Tables
  • Impact on Performance

Módulo 8: Improving Join Performance

  • Skewed Joins
  • Bucketed Joins
  • Incremental Joins

Módulo 9: Pyspark Overhead and UDFs

  • Pyspark Overhead
  • Scalar UDFs
  • Vector UDFs using Apache Arrow
  • Scala UDFs

Módulo 10: Caching Data for Reuse

  • Caching Options
  • Impact on Performance
  • Caching Pitfalls

Módulo 11: Workload XM (WXM) Introduction

  • WXM Overview
  • WXM for Spark Developers

Módulo 12: 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

Próximas convocatorias