DURACIÓN: 72 HORAS
Apache Spark es un motor de procesamiento distribuido construido para aumentar la velocidad de procesamiento de grandes cantidades de datos añadiendo facilidad de uso y un análisis sofisticado. Diseñado para aumentar el rendimiento, Spark puede ser 100 veces mas rápido que Hadoop debido a que procesa los los datos en memoria RAM y ademas tiene otras optimizaciones. Spark es también rápido cuando almacena datos en disco. Spark tiene una API fácil de usar para operar en grandes volúmenes de datos. Esto incluye una colección de alrededor de 100 operadores para transformar datos. Spark tiene incluido librerías de alto nivel para hacer SQL queries, manipular datos en Streaming, machine learning y procesamiento de graphs. Estas librerías estándar incrementa la productividad de los desarrolladores y puede crear complejos flujos de trabajo sin problemas. En muchas ocasiones las empresas tienen que echar mano de perfiles similares como analistas web, matemáticos y estadísticos para cubrir determinadas vacantes o tareas. El problema, es que estos perfiles carecen de una formación específica en el campo Big Data y Data Science y, en la mayoría de los casos tampoco pueden acceder a ella por la importante barrera de entrada que suponen los conocimientos en programación: se necesita entender cómo funciona un lenguaje de programación y saber cuáles son sus estructuras básicas.
01/ Porque Spark Introducción a Apache Spark Procesamiento distribuido con el framework de Spark. Ventajas de Spark. Quien usa Spark? Casos de uso. Beneficios de Spark. Spark Vs MapReduce. 02/ Conceptos Básicos de Spark Que es Apache Spark?. Spark Shell. Spark Context. RDDs: Resilient Distributed Datasets. Creación de un RDD. RDD a traves de ficheros. Ejemplo: RDD basado en ficheros. RDD a traves de ficheros. Operaciones con RDDs. Operaciones con RDDs: Acciones. Operaciones con RDDs: Transformaciones. Ejemplo Map y Filter. Lazy execution. Transformaciones. Transformación funcional en Spark. Paso de funciones como parámetros. Ejemplo: paso de funciones. Funciones anonimas. Ejemplo: funciones anonimas. 03/ Trabajando con RDDs RDDs. Creación de un RDD desde una colección. Otras operaciones con RDDs. Pair RDDs. Crear un Pair RDD. Ejemplo: Pair RDD. Pairs con datos complejos. MapReduce en Spark. MapReduce ejemplo wordcount. Otras operaciones con Pair RDD. 04/ Hadoop Distributed File System Por que HDFS?. Almacenamiento de los datos. Lectura y escritura. Ejemplo HDFS DFS. Ejemplo HDFS en Spark. Uso de HDFS por defecto. 05/ Spark en un cluster Opciones de Spark en un cluster. Por que ejecutar Spark en un cluster?. Procesamiento distribuido. Terminología de un cluster en Spark. Programa driver en Spark. Inicio de Spark Shell en el cluster. Spark Standalone cluster. Ejecucion de Spark en Standalone cluster. Spark Standalone web UI. Spark Standalone web UI: Aplicacion. Spark Standalone web UI: Worker. Opciones de despliegue de Spark. Modo cliente y modo cluster.
06/ Programación paralela con Spark Spark cluster. RDDs en cluster. Particionado por ficheros: fichero único. Particionado por ficheros: ficheros múltiples. Operaciones con particiones. HDFS y localidad de los datos. Operaciones con particiones. Ejemplo: media del tamaño de las palabras. Stages y tasks. Resumen terminología Spark. Control del nivel de paralelismo. Cálculo de las Stages. Ejecución Spark: Scheduling. Stages en Spark Application UI 07/ Cacheo y persistencia Linaje de un RDD. Cacheo. Cacheo y tolerancia a fallos. Niveles de persistencia. Cambio de los niveles de persistencia. Persistencia en disco. Persistencia en disco-replicación. Checkpointing. 08/ Aplicaciones con Spark Spark shell Vs Spark aplications. Ejemplo Python wordcount. Ejemplo Scala wordcount. Aplicaciones Spark: Scala o Java. Ejecución de una aplicación de Spark. Configuración de aplicaciones Spark. Configuración en tiempo de ejecución. Configuración a través de la programación. Ejemplo sparkcontext Python. Ejemplo sparkcontext Scala. Visualización de las propiedades de Spark. Logging. Ficheros de log en Spark. Ficheros de log en Spark web UI. Configuración de Spark logging. 09/ Spark Streaming Que es Spark Streaming?. Por que Spark Streaming?. Características de Spark Streaming. Ejemplo: Streaming request count. Dstreams. Origenes para un Dstream. Operaciones de un Dstream. Transformaciones de un Dstream. Operaciones de salida de un Dstream. Salida Dstream a fichero. Uso de Spark Streaming con Spark-Shell. Estado de un Dstream. Operaciones con ventanas. Desarrollo de aplicaciones de Spark Streaming. Tolerancia a fallos de Spark. Aplicaciones Spark UI.
10/ Patrones comunes de desarrollo Casos de uso de Spark. Mllib, machine learning en Spark. Ejemplo K-means, clustering. 11/ Mejoras de rendimiento Variables Broadcast. Variables Broadcast, ejemplo. Ejemplo: enviar una tabla de datos como parámetro. Acumuladores. Acumuladores, ejemplo word length. Rendimiento, particiones pequeñas.