1. Introducción.
1.1. ¿Qué es Big Data?1.2. Paradigmas de procesamiento en Big Data.1.3. Las 8 V de Big Data (Volumen, Volatilidad, Variedad, Valor, Velocidad, Variabilidad, Veracidad, Validez).2. Batch Processing.
2.1. MapReduce.2.1.1. Entorno MapReduce.2.1.2. Función Map y función Reduce.2.1.3. Flujo de datos2.1.4. Características de MapReduce.2.1.5. Uso de MapReduce.2.1.6. Ventajas e inconvenientes de MapReduce2.1.7. Ejercicios y ejemplos con MapReduce.2.2. Hadoop2.2.1. Entorno Hadoop.2.2.2. Almacenamiento: HDFS.2.2.3. Características de HDFS2.2.3.1. Lectura y escritura de archivos.2.2.3.2. Consideraciones acerca de memoria de NameNode.2.2.3.3. Aspectos generales de seguridad en HDFS.2.2.3.4. Empleo del Namenode Web UI.2.2.3.5. Empleo del File Shell de Hadoop.2.2.3.6. Procesamiento: MapReduce.2.2.3.7. Ventajas e inconvenientes de Hadoop.2.3. Apache Hadoop YARN.2.3.1. Funciones de Framework computacionales.2.3.2. YARN: El gestor de recursos del Cluster.2.3.3. Conceptos de Apache Spark.2.3.4. Ejecución de Computational Frameworks en YARN.2.3.5. Exploración de las aplicaciones de YARN Applications a través de la Web UIs y de Shell.2.4. Agregación de los logs de YARN.2.4.1. Configuración de Hadoop y registros de Daemon.2.4.2. Localizar configuraciones y aplicar cambios de configuración2.4.3. Gestión de instancias de Role y añadir servicios2.4.4. Configuración del servicio HDFS2.4.5. Configuración de los logs de Hadoop Daemon2.4.6. Configuración del servicio YARN2.5. Obtención de datos en HDFS2.5.1. Ingestión de datos desde fuentes de recursos externos con Flume2.5.2. Ingestión de datos desde bases de datos relacionales con Sqoop2.5.3. REST Interfaces2.5.4. Buenas prácticas para la importación de datos2.6. Planificación de un clúster Hadoop2.6.1. Consideraciones generales de planificación2.6.2. Elección correcta de Hardware2.6.3. Opciones de Virtualización2.6.4. Consideraciones de red2.6.5. Configuración de nodos2.7. Instalación y configuración de Hive, Pig e Impala2.8. Clientes Hadoop incluidos en Hue2.8.1. ¿Qué es un cliente de Hadoop?2.8.2. Instalación y configuración de clientes Hadoop2.8.3. Instalación y configuración de Hue2.8.4. Autorizaciones y autenticación Hue2.9. Configuración avanzada de un clúster2.9.1. Parámetros avanzados de configuración2.9.2. Configuración de puertos Hadoop2.9.3. Configuración de HDFS para la organización en rack2.9.4. Configuración de HDFS para obtención de alta disponibilidad2.10. Seguridad Hadoop2.10.1. ¿Por qué es importante la seguridad en Hadoop?2.10.2. Conceptos del sistema de seguridad de Hadoop2.10.3. Qué es Kerberos y cómo funciona2.10.4. Securización de un clúster Hadoop Clúster con Kerberos.2.10.5. Otros conceptos de seguridad.2.11. Gestión de recursos.2.11.1. Configuración de cgroups con Static Service Pools.2.11.2. El Fair Scheduler.2.11.3. Configuración de Dynamic Resource Pools.2.11.4. Configuraciones de CPU y memoria YARN.2.11.5. Impala Query Scheduling.2.12. Mantenimiento de un clúster.2.12.1. Chequeo del estado de HDFS.2.12.2. Copia de datos entre clústers.2.12.3. Añadir y eliminar de nodos en el clúster.2.12.4. Rebalanceo del Clúster.2.12.5. Directorio de Snapshots.2.12.6. Actualización del clúster.2.13. Solución de problemas y monitorización de un clúster.2.13.1. Sistema general de monitorización.2.13.2. Monitorización de clústers Hadoop.2.13.3. Solución de problemas habituales en el clúster de Hadoop.2.13.4. Errores habituales en la configuración.3. Ciencia de datos.
3.1. Data Science.3.1.1. Que hacen los data Scientists, herramientas y procesos que utilizan.3.1.2. Aplicación de lo aprendido en módulo 2: Uso de Hue.3.2. Apache Spark.3.2.1. Cómo trabaja Apache Spark y que capacidades nos ofrece.3.2.2. Que formatos de ficheros populares puede usar Spark para almacenar datos.3.2.3. Que lenguajes de programación puedes utilizar para trabajar con Spark.3.2.4. Cómo empezar a utilizar PySpark y Sparklyr.3.2.5. Cómo comparar PySpark y Sparklyr.3.3. Machine Learning.3.3.1. ¿Qué es machine learning?3.3.2. Algunos conceptos y términos importantes.3.3.3. Diferentes tipos de algoritmos.3.3.4. Librerías que se utilizan.3.4. Apache Spark MLlib.3.4.1. Qué capacidades de machine learning nos proporciona MLlib.3.4.2. Cómo crear, validar y utilizar modelos de machine learning con MLlib.3.4.3. Ejecución de trabajos Apache Spark.3.4.4. Cómo un trabajo de Spark se compone de una secuencia de transformaciones seguida de una3.4.5. Cómo Spark utiliza la ejecución lenta3.4.6. Cómo Spark divide los datos entre las particiones3.4.7. Cómo ejecuta Spark operaciones limitadas y grandes3.4.8. Cómo Spark ejecuta un trabajo en tareas y fases4. DESARROLLO PARA SPARK Y HADOOP
4.1. Datasets y Dataframes4.2. Operaciones en Dataframe4.3. Trabajar con Dataframes y Schemas4.4. Crear Dataframes a partir de Data Sources4.5. Guardar DataFrames en Data Sources4.6. DataFrame Schemas4.7. Rapidez y lentitud de ejecución4.8. Análisis de datos con consultas de DataFrame4.8.1. Consultar DataFrames con el empleo de expresiones de columna4.8.2. Agrupación y agregación de consultas4.8.3. Unión de DataFrames4.9. RDD4.9.1. Introducción RDD4.9.2. RDD Data Sources4.9.3. Creando y guardando RDDs4.9.4. Operaciones con RDDs4.10. Transformación de datos con RDDs4.10.1. Escritura y paso de funciones de transformación4.10.2. Ejecuciones de transformación4.10.3. Conversión entre RDDs y DataFrames4.11. Agregación de datos con Pair RDDs4.11.1. Key-Valué Pair RDDs4.11.2. Mal-Reduce4.11.3. Otras operaciones Pair RDD4.12. Consulta y vistas de tablas con Spark SQL4.12.1. Datasets y DataFrames4.12.2. Creación de Datasets4.12.3. Ejecución y guardado de Datasets.4.12.4. Operaciones de Dataset.4.13. Creación, configuración y ejecución de aplicaciones Spark.4.13.1. Creación de una aplicación Spark.4.13.2. Compilar y ejecutar la aplicación.4.13.3. Application Deployment Mode.4.13.4. La interfaz Spark Application Web UI.4.13.5. Configuración de las propiedades de la aplicación.4.14. Procesamiento distribuido.4.14.1. Apache Spark en un Clúster.4.14.2. Particiones RDD.4.14.3. Ejemplo: Particionamiento en consultas.4.14.4. Etapas y Tareas.4.14.5. Planificación de tareas de ejecución.4.15. Persistencia de datos distribuidos.4.15.1. Persistencia en Datasets y DataFrames.4.15.2. Persistencia en niveles de almacenamiento.4.15.3. Visualización de RDDs persistentes.4.16. Patrones comunes al procesar datos con Spark.4.16.1. Casos comunes de uso de Spark.4.16.2. Algoritmos de iteración en Apache Spark.4.16.3. Machine Learning.4.17. Spark Streaming: Introducción a DStreams.4.17.1. Vista general de Spark Streaming.4.17.2. DStreams.4.17.3. Desarrollo de aplicaciones en Streaming.4.18. Spark Streaming: procesamiento de múltiples lotes.4.18.1. Operaciones Multi-Batch.4.18.2. Time Slicing.4.18.3. Operaciones de estado.4.18.4. Operaciones Sliding Window.4.18.5. Vista previa: Streaming estructurado.4.19. Apache Spark Streaming: Data Sources.4.19.1. Vista general de Streaming Data Source.4.19.2. Apache Flume y Apache Kafka Data Sources.4.19.3. Ejemplo: uso de un Kafka Direct Data Source.5. Análisis de datos.
5.1. Introducción a Pig.5.1.1. ¿Qué es Pig?5.1.2. Características de Pig.5.1.3. Casos de empleo de Pig.5.1.4. Interacción con Pig.5.2. Análisis de datos básico con Pig.5.2.1. Sintaxis Pig Latin.5.2.2. Carga de datos.5.2.3. Tipos simples de datos.5.2.4. Definición de campos.5.2.5. Datos de salida.5.2.6. Vistas y esquemas.5.2.7. Filtrado y ordenación de datos.5.2.8. Funciones habituales.5.3. Procesado de datos complejos con Pig.5.3.1. Formatos de almacenamiento.5.3.2. Tipos de datos complejos y anidados.5.3.3. Agrupaciones.5.3.4. Funciones predefinidas para datos complejos.5.3.5. Iteración de datos agrupados.5.4. Operaciones con multiconjuntos de datos con Pig.5.4.1. Técnicas para combinar conjuntos de datos.5.4.2. Unión de conjuntos de datos con Pig.5.4.3. Conjunto de operaciones.5.4.4. División de conjuntos de datos.5.5. Troubleshooting y optimización de Pig.5.5.1. Troubleshooting en Pig.5.5.2. Inicio de sesión.5.5.3. Empleo de UI web Hadoop.5.5.4. Muestreo de datos y depuración.5.5.5. Visión general del rendimiento.5.5.6. Comprensión del plan de ejecución.5.5.7. Consejos para mejorar el rendimiento de Jobs en Pig.5.6. Introducción a Hive e Impala.5.6.1. ¿Qué es Hive?5.6.2. ¿Qué es Impala?5.6.3. ¿Por qué utilizar Hive e Impala?5.6.4. Schema y almacenamiento de datos.5.6.5. Comparación entre Hive y bases de datos tradicionales.5.6.6. Casos de uso.5.7. Consultas con Hive e Impala.5.7.1. Tablas y bases de datos.5.7.2. Sintaxis básica en consultas Hive e Impala.5.7.3. Tipos de datos.5.7.4. Empleo de Hue para ejecutar consultas.5.7.5. Empleo de Beeline (la Shell de Hive).5.7.6. Empleo de la Shell de Impala.5.8. Administración de datos.5.8.1. Almacenamiento de datos.5.8.2. Creación de bases de datos y tablas.5.8.3. Carga de datos.5.8.4. Alteración de bases de datos y tablas.5.8.5. Simplificación de consultas con vistas.5.8.6. Almacenamiento de resultados de consultas.5.9. Almacenamiento y datos de rendimiento.5.9.1. Partición de tablas.5.9.2. Carga de datos en tablas particionadas.5.9.3. ¿Cuándo utilizar el particionamiento?5.9.4. Elección de formato de almacenamiento.5.9.5. Gestión de metadatos.5.9.6. Control de acceso a datos.5.10. Análisis de datos relacional con Hive e Impala.5.10.1. Unión de conjuntos de datos.5.10.2. Funciones predefinidas habituales.5.10.3. Agregaciones y Windowing.5.11. Datos complejos con Hive e Impala.5.11.1. Datos complejos con Hive.5.11.2. Datos complejos con Impala.5.12. Análisis de texto con Hive e Impala.5.12.1. Empleo de expresiones regulares.5.12.2. Procesamiento de texto con SerDes en Hive.5.12.3. Análisis de los sentimientos y NGrams.5.13. Optimización Hive.5.13.1. Rendimiento de las consultas.5.13.2. Bucketing.5.13.3. Indexación de datos.5.13.4. Hive en Spark.5.14. Optimización de Impala.5.14.1. Ejecución de consultas.5.14.2. Mejorar el rendimiento de Impala.5.15. Extendiendo Hive e Impala.5.15.1. Customizar SerDes y formatos de fichero en Hive.5.15.2. Transformación de datos con Scripts personalizados en Hive.5.15.3. Funciones definidas por el usuario.5.15.4. Consultas parametrizadas.5.15.5. Comparación entre MapReduce, Pig, Hive, Impala, y bases de datos relacionales. ¿Cuál elegir?