Ingeniería Big Data: Sociedad Interconectada

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál es el objetivo principal del estudio de las tecnologías Big Data según el texto?

  • Entender cómo abordan las necesidades de procesamiento de datos actuales. (correct)
  • Aprender a programar en Java.
  • Crear nuevas bases de datos relacionales.
  • Dominar el uso de sistemas operativos Linux.

En el contexto de Big Data, ¿qué porcentaje de los datos generados se considera no estructurado?

  • 80% (correct)
  • 50%
  • 20%
  • 90%

¿Cuál de las siguientes NO es una fuente principal de datos en la era del Big Data?

  • Interacción entre humanos a través de sistemas informáticos.
  • Interacción humano-máquina en plataformas digitales.
  • Interacción entre máquinas mediante sistemas de monitoreo.
  • Interacción humano-máquina en dispositivos analógicos. (correct)

¿Cuál de las siguientes opciones describe mejor el objetivo de la transformación digital según el texto?

<p>Centrarse en el cliente y tomar decisiones basadas en datos. (D)</p> Signup and view all the answers

Según el texto, ¿cuál es una característica esencial para que un proyecto se considere Big Data?

<p>Implicar al menos una de las tres 'V' (volumen, velocidad, variedad). (C)</p> Signup and view all the answers

Según lo expuesto, ¿qué facilitan las tecnologías Big Data?

<p>El manejo de datos que antes eran difíciles de procesar y analizar. (B)</p> Signup and view all the answers

¿Cuál fue la principal contribución de Google al origen de las tecnologías Big Data?

<p>El reconocimiento del creciente volumen de datos en Internet y la necesidad de indexarlos. (B)</p> Signup and view all the answers

¿Qué problema específico abordó el Google File System (GFS)?

<p>El almacenamiento de archivos que excedían la capacidad de un solo disco duro. (B)</p> Signup and view all the answers

¿Cuál fue la principal ventaja de MapReduce en su momento?

<p>Permitir a los desarrolladores concentrarse en la lógica de sus aplicaciones. (B)</p> Signup and view all the answers

¿Quién desarrolló Apache Spark y cuál fue su motivación principal?

<p>Matei Zaharia, para mejorar las limitaciones de Hadoop. (D)</p> Signup and view all the answers

¿Qué característica principal permite a las tecnologías de procesamiento distribuido manejar grandes volúmenes de datos?

<p>La capacidad de distribuir el procesamiento entre múltiples máquinas interconectadas. (B)</p> Signup and view all the answers

¿Cuál de las siguientes herramientas NO forma parte del ecosistema Hadoop?

<p>TensorFlow (C)</p> Signup and view all the answers

En el ecosistema Hadoop, ¿cuál es la función principal de Zookeeper?

<p>Coordinar la operación de las herramientas. (C)</p> Signup and view all the answers

¿Qué herramienta del ecosistema Hadoop permite realizar consultas SQL en datos almacenados en HDFS?

<p>Hive (C)</p> Signup and view all the answers

¿Cuál de estas herramientas ha reemplazado a MapReduce debido a su mayor velocidad y eficiencia?

<p>Apache Spark (D)</p> Signup and view all the answers

¿Qué función cumplen las distribuciones de Hadoop?

<p>Agrupar múltiples herramientas para facilitar la instalación y operación. (C)</p> Signup and view all the answers

Entre las distribuciones de Hadoop mencionadas, ¿cuál es la única que es 100% open source y compatible con Windows?

<p>Ninguna de las anteriores (B)</p> Signup and view all the answers

¿Cuál es el tamaño de bloque predeterminado en HDFS?

<p>128 MB (C)</p> Signup and view all the answers

En HDFS, ¿cuál es el factor de replicación predeterminado para asegurar la alta disponibilidad de los datos?

<p>3 (A)</p> Signup and view all the answers

En la arquitectura de HDFS, ¿cuál es la función del NameNode?

<p>Gestionar la estructura de directorios y los metadatos de los archivos. (A)</p> Signup and view all the answers

¿Cómo se logra la alta disponibilidad del NameNode en HDFS?

<p>Mediante el uso de un par de NameNodes activos y en espera. (A)</p> Signup and view all the answers

Durante el proceso de escritura en HDFS, ¿qué rol desempeña el NameNode?

<p>Proporcionar la localización de los DataNodes donde se escribirán los bloques. (C)</p> Signup and view all the answers

Cuál de los siguientes comandos de HDFS se utiliza para ver el contenido de un directorio?

<p><code>hdfs dfs –ls</code> (D)</p> Signup and view all the answers

Si necesitas copiar un archivo desde tu sistema de archivos local a HDFS, ¿qué comando utilizarías?

<p><code>hdfs dfs –copyFromLocal</code> (A)</p> Signup and view all the answers

¿Cuál es el propósito del comando hdfs dfs –tail /ruta/hdfs/fichero.txt?

<p>Mostrar las últimas líneas de un archivo. (D)</p> Signup and view all the answers

¿Qué comando se utiliza para eliminar un directorio y todo su contenido en HDFS?

<p><code>hdfs dfs –rm –r /ruta/carpeta</code> (B)</p> Signup and view all the answers

En MapReduce, ¿cuál es la función del Mapper?

<p>Invocar en paralelo sobre cada bloque de entrada, generando resultados intermedios. (C)</p> Signup and view all the answers

En MapReduce, ¿qué hace el Reducer?

<p>Aplica la función a cada grupo de datos generados por el Mapper, combinando los valores. (B)</p> Signup and view all the answers

¿Cuál es una desventaja significativa de MapReduce?

<p>El resultado intermedio del Mapper se escribe en disco, penalizando el rendimiento. (D)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor a Apache Spark?

<p>Un motor unificado de cálculo en memoria para procesamiento paralelo. (A)</p> Signup and view all the answers

En el contexto de Apache Spark, ¿cuál es la función de Spark Core?

<p>Contener las estructuras de datos fundamentales como los RDD. (A)</p> Signup and view all the answers

RDD en Apache Spark, ¿qué significan las siglas?

<p>Resilient Distributed Datasets (D)</p> Signup and view all the answers

¿Cuál es una característica clave de los RDD en Spark?

<p>Son inmutables y se transforman para obtener nuevos RDD. (B)</p> Signup and view all the answers

¿Qué diferencia principal existe entre una transformación y una acción en Spark?

<p>Las transformaciones son perezosas y solo se ejecutan cuando se invoca una acción. (A)</p> Signup and view all the answers

En Spark, ¿qué representa un 'job'?

<p>El procesamiento necesario para completar una acción del usuario. (A)</p> Signup and view all the answers

En Spark, ¿qué son las 'tasks'?

<p>Unidades mínimas de trabajo correspondientes a las transformaciones aplicadas a las particiones. (A)</p> Signup and view all the answers

Al usar toPandas en Spark, ¿qué limitación principal se debe considerar?

<p>Las limitaciones de memoria para evitar excepciones. (A)</p> Signup and view all the answers

¿Cuál es la función principal de los DataFrames en Spark?

<p>Manejar datos en forma de tablas distribuidas. (A)</p> Signup and view all the answers

Spark SQL permite realizar consultas en lenguaje SQL sobre:

<p>DataFrames registrados como tablas. (A)</p> Signup and view all the answers

En Spark SQL, ¿qué son las vistas?

<p>Transformaciones sobre tablas existentes sin almacenar datos duplicados. (D)</p> Signup and view all the answers

¿Cuál es la diferencia entre las 'tablas gestionadas' y las 'tablas externas' en Hive?

<p>Las tablas gestionadas son controladas completamente por Hive, mientras que las externas permiten que los datos queden intactos al borrar la tabla. (D)</p> Signup and view all the answers

Según el texto, ¿cuál no es una de las operaciones que un Business Intelligence Analyst puede ejecutar en Apache Hive?

<p>OLTP (B)</p> Signup and view all the answers

Conceptualmente, ¿qué paradigma define mejor a Apache Impala?

<p>Sistema de procesamiento masivamente paralelo (MPP). (A)</p> Signup and view all the answers

En seguridad en la nube, ¿cuál es la distribución de responsabilidades según el modelo de responsabilidad compartida?

<p>El proveedor gestiona la infraestructura, mientras que el usuario se asegura de la protección de sus datos y accesos. (B)</p> Signup and view all the answers

¿Cuál es el enfoque principal para abordar las necesidades de procesamiento de datos según el texto?

<p>La comprensión y aplicación de las tecnologías Big Data. (C)</p> Signup and view all the answers

¿Qué porcentaje de los datos generados actualmente se considera estructurado?

<p>20% (D)</p> Signup and view all the answers

¿Qué tipo de interacción NO se menciona como una fuente principal de datos en la era del Big Data?

<p>Interacción directa entre humanos sin mediación tecnológica. (C)</p> Signup and view all the answers

¿En qué se enfoca la transformación digital según el contenido?

<p>En centrarse en el cliente y aprovechar los canales digitales. (D)</p> Signup and view all the answers

¿Qué característica es suficiente para considerar un proyecto como Big Data?

<p>Implicar al menos una de las tres 'V' (volumen, velocidad, variedad). (B)</p> Signup and view all the answers

¿Qué capacidades clave facilitan las tecnologías Big Data?

<p>La aplicación de técnicas de análisis existentes a mayores volúmenes de datos. (A)</p> Signup and view all the answers

¿Cuál fue el principal desafío que impulsó a Google a desarrollar tecnologías Big Data?

<p>La necesidad de indexar el creciente volumen de páginas en Internet. (B)</p> Signup and view all the answers

¿Cuál fue la propuesta clave del Google File System (GFS)?

<p>Un sistema de almacenamiento basado en clústeres de ordenadores convencionales. (B)</p> Signup and view all the answers

¿Qué ventaja crucial ofrecía MapReduce a los desarrolladores?

<p>Simplificación de los aspectos de hardware y redes. (B)</p> Signup and view all the answers

¿Cuál fue la principal motivación detrás del desarrollo de Apache Spark?

<p>Mejorar las limitaciones de Hadoop. (C)</p> Signup and view all the answers

¿Qué principio fundamental permite a las tecnologías de procesamiento distribuido manejar grandes volúmenes de datos?

<p>La capacidad de procesar datos a través de múltiples máquinas interconectadas. (C)</p> Signup and view all the answers

¿Cuál de las siguientes herramientas NO es un componente central del núcleo del ecosistema Hadoop?

<p>Spark (D)</p> Signup and view all the answers

¿Qué rol crucial desempeña Zookeeper en el ecosistema Hadoop?

<p>Coordinación y gestión de la correcta operación de las herramientas. (A)</p> Signup and view all the answers

¿Qué herramienta del ecosistema Hadoop brinda la capacidad de ejecutar consultas SQL directamente sobre los datos almacenados en HDFS?

<p>Hive (A)</p> Signup and view all the answers

¿Qué tecnología ha ganado prominencia reemplazando a MapReduce debido a su mejorada velocidad y eficacia?

<p>Apache Spark (A)</p> Signup and view all the answers

¿Cuál es el propósito principal de las distribuciones de Hadoop?

<p>Facilitar la instalación, operación y compatibilidad de las herramientas de Hadoop. (B)</p> Signup and view all the answers

¿Cuál de las siguientes distribuciones de Hadoop es totalmente de código abierto y compatible con Windows?

<p>Ninguna de las anteriores. (C)</p> Signup and view all the answers

¿Cuál es la capacidad estándar de un bloque en HDFS?

<p>128 MB (B)</p> Signup and view all the answers

¿Cuál es el factor de replicación predeterminado en HDFS para asegurar una alta disponibilidad de los datos?

<p>3 (B)</p> Signup and view all the answers

¿Cuál es el papel del NameNode dentro de la arquitectura HDFS?

<p>Gestiona la estructura de directorios y los metadatos de los archivos. (D)</p> Signup and view all the answers

¿Cuál es la técnica empleada para lograr una alta disponibilidad del NameNode en HDFS?

<p>Utilizando un par de NameNodes activos y en espera que comparten un log de edición. (C)</p> Signup and view all the answers

¿Cuál es el papel del NameNode durante el proceso de escritura en HDFS?

<p>Proporciona la localización de los DataNodes donde se escribirán los bloques. (D)</p> Signup and view all the answers

¿Cuál comando HDFS se utiliza para examinar los elementos dentro de un directorio?

<p><code>hdfs dfs –ls</code> (D)</p> Signup and view all the answers

¿Qué comando utilizarías para transferir un archivo desde tu sistema de archivos local hacia HDFS?

<p><code>hdfs dfs –copyFromLocal</code> (A)</p> Signup and view all the answers

¿Qué comando se utiliza para suprimir un directorio y todo su contenido dentro de HDFS?

<p><code>hdfs dfs –rm –r</code> (C)</p> Signup and view all the answers

¿Cuál es la función del Mapper en MapReduce?

<p>Invocar en paralelo sobre cada bloque de entrada, generando resultados intermedios. (D)</p> Signup and view all the answers

¿Cuál es el rol del Reducer en el paradigma MapReduce?

<p>Aplicar una función a cada grupo de datos generados por el Mapper, combinando los valores asociados a cada clave única. (A)</p> Signup and view all the answers

¿Qué aspecto negativo importante presenta MapReduce?

<p>El resultado intermedio del Mapper se escribe en disco, lo que penaliza el rendimiento. (C)</p> Signup and view all the answers

¿Cuál es la función de Spark Core en Apache Spark?

<p>Contiene las estructuras de datos fundamentales como los RDD. (C)</p> Signup and view all the answers

En Apache Spark, ¿qué significan las siglas RDD?

<p>Resilient Distributed Datasets (A)</p> Signup and view all the answers

¿Cuál es la diferencia principal entre una transformación y una acción en Spark?

<p>Las transformaciones son perezosas y solo se ejecutan cuando se invoca una acción. (B)</p> Signup and view all the answers

¿Qué restricción principal se debe tener en cuenta al utilizar toPandas en Spark?

<p>Los datos deben caber en la memoria del driver para evitar excepciones. (A)</p> Signup and view all the answers

¿Cuál es el propósito principal de los DataFrames en Spark?

<p>Manejar datos en forma de tablas distribuidas, facilitando un nivel de abstracción superior y facilidad de uso. (A)</p> Signup and view all the answers

¿Cuál de las siguientes opciones describe mejor el paradigma de Apache Impala?

<p>Procesamiento masivamente paralelo (MPP) diseñado para ejecutar consultas interactivas en SQL. (A)</p> Signup and view all the answers

Según el modelo de responsabilidad compartida en seguridad en la nube, ¿qué parte es responsabilidad del proveedor de la nube?

<p>La seguridad de la infraestructura física de la nube. (A)</p> Signup and view all the answers

¿Qué habilidad central permite a los analistas de Business Intelligence trabajar con Apache Hive?

<p>Consultas en lenguaje SQL (B)</p> Signup and view all the answers

¿Qué representa un RDD en Apache Spark?

<p>Una colección distribuida de datos resistente a fallos (B)</p> Signup and view all the answers

¿Cuál de los siguientes servicios de AWS permite ejecutar aplicaciones en contenedores sin gestionar la infraestructura subyacente?

<p>Amazon ECS (C)</p> Signup and view all the answers

¿Qué ofrece Microsoft Azure a través de su Azure Marketplace?

<p>Servicios de terceros, como imágenes de máquinas virtuales y software (B)</p> Signup and view all the answers

¿Qué función desempeña Flume dentro del ecosistema Hadoop?

<p>Tratamiento de logs (D)</p> Signup and view all the answers

¿Cuál es el principal objetivo de las distribuciones de Hadoop como Cloudera o Hortonworks?

<p>Facilitar la instalación y operación de las herramientas de Hadoop (A)</p> Signup and view all the answers

¿En el contexto de AWS, qué rol desempeña Amazon Redshift?

<p>Sistema de data warehousing para analíticas interactivas (B)</p> Signup and view all the answers

¿Cuál es la función destacada de Cloud Dataprep en Google Cloud Platform (GCP)?

<p>Limpiar y transformar datos en bruto para análisis (C)</p> Signup and view all the answers

¿Qué tipo de modelo de servicio en la nube proporciona la infraestructura fundamental, como servidores y redes, que los usuarios pueden controlar?

<p>IaaS (Infrastructure as a Service) (C)</p> Signup and view all the answers

¿Qué describe mejor la función del NameNode en HDFS?

<p>Gestiona los metadatos y la estructura de directorios del sistema de archivos (A)</p> Signup and view all the answers

En Kafka, si tienes más consumidores en un grupo de consumidores que particiones en un topic, ¿qué ocurre?

<p>Algunos consumidores permanecerán inactivos. (B)</p> Signup and view all the answers

¿Cuál de estos NO es un beneficio principal del cloud computing?

<p>Control completo sobre la infraestructura física (B)</p> Signup and view all the answers

En el contexto de Google Cloud Platform, ¿qué servicio permite desplegar clústeres Hadoop totalmente gestionados?

<p>Dataproc (A)</p> Signup and view all the answers

En AWS, ¿qué servicio se utiliza para gestionar la identidad y el acceso a los recursos de la nube?

<p>AWS IAM (B)</p> Signup and view all the answers

En Spark MLlib, ¿qué función cumple un 'Estimador'?

<p>Ajusta parámetros usando el método <code>fit</code> antes de realizar transformaciones (A)</p> Signup and view all the answers

En Apache Kafka, ¿qué representa un 'topic'?

<p>Una categoría o fuente de datos donde se organizan los mensajes (B)</p> Signup and view all the answers

Si un usuario necesita ejecutar consultas SQL en tiempo real sobre datos almacenados en HDFS, ¿qué herramienta es más adecuada?

<p>Apache Impala (D)</p> Signup and view all the answers

Imagina que tienes un archivo CSV delimitado por comas pero con algunas comas dentro de los campos de texto. ¿Cuál es el método más robusto para leer este archivo en un DataFrame de Spark SQL correctamente?

<p>Utilizar <code>spark.read.format('csv').option('quote', '&quot;').option('escape', '\\').load('ruta/al/archivo.csv')</code>. (D)</p> Signup and view all the answers

Estás diseñando un sistema de procesamiento de datos con Apache Kafka. Tienes un topic con 10 particiones y planeas tener un número variable de consumidores en un grupo de consumidores. ¿Cuál es el número máximo de consumidores activos que puedes tener simultáneamente y seguir aprovechando el paralelismo total sin tener consumidores inactivos?

<p>10, ya que cada partición puede ser leída por un solo consumidor a la vez. (A)</p> Signup and view all the answers

Estás trabajando en un proyecto de Machine Learning en Google Cloud Platform (GCP) y necesitas preparar un conjunto de datos masivo que contiene información personal sensible. Necesitas anonimizar los datos antes de usarlos para entrenar un modelo y garantizar el cumplimiento de las regulaciones de privacidad. ¿Qué servicio de GCP ofrece la funcionalidad más directa para transformar y anonimizar los datos en un entorno gestionado?

<p>Cloud Data Loss Prevention (DLP) (A)</p> Signup and view all the answers

Flashcards

¿Qué son las tecnologías Big Data?

Conjunto de tecnologías y arquitecturas para almacenar, mover, acceder y procesar datos que antes eran difíciles de manejar debido a su volumen, velocidad y variedad.

¿Quién reconoció la necesidad del Big Data?

Google fue la primera en reconocer la necesidad de procesar grandes volúmenes de datos para indexar la web. Desarrolló Google File System (GFS).

¿Qué es MapReduce?

Es un modelo de programación que permite procesar archivos en paralelo en clústeres conectados.

¿Qué es Apache Spark?

Solución open source que supera las limitaciones de Hadoop, comparte estructura de clústeres y reemplaza a MapReduce.

Signup and view all the flashcards

¿Qué es HDFS?

Sistema de archivos distribuido que gestiona datos entre nodos en un clúster.

Signup and view all the flashcards

¿Qué es Hive?

Herramienta que permite consultas SQL en datos almacenados en HDFS.

Signup and view all the flashcards

¿Qué es Apache Kafka?

Plataforma para la gestión de eventos en tiempo real, utilizando una cola de mensajes distribuida.

Signup and view all the flashcards

¿Qué son las distribuciones de Hadoop?

Agrupan múltiples herramientas para facilitar la instalación y operación de Hadoop.

Signup and view all the flashcards

¿Qué es HDFS?

Sistema de archivos distribuido para almacenar grandes archivos con acceso en streaming.

Signup and view all the flashcards

¿Qué son los bloques de HDFS?

Divide archivos grandes en bloques que se almacenan en diferentes nodos.

Signup and view all the flashcards

¿Qué es el NameNode?

Responsable de la estructura de directorios y la metadata de archivos.

Signup and view all the flashcards

¿Qué son los DataNodes?

Almacenan los bloques reales de datos en HDFS.

Signup and view all the flashcards

Comando hdfs dfs –ls

Visualiza el contenido de un directorio en HDFS.

Signup and view all the flashcards

Comando hdfs dfs –mkdir

Crea un nuevo subdirectorio en HDFS.

Signup and view all the flashcards

Comando hdfs dfs –copyFromLocal

Copia un archivo del sistema de archivos local a HDFS.

Signup and view all the flashcards

Comando hdfs dfs –cat

Imprime el contenido completo del archivo en HDFS.

Signup and view all the flashcards

¿Qué es MapReduce?

Es un paradigma de programación que permite el procesamiento donde están los datos, en paralelo.

Signup and view all the flashcards

¿Qué es el Mapper?

Se invoca en paralelo sobre cada bloque de entrada, generando resultados intermedios.

Signup and view all the flashcards

¿Qué es el Reducer?

Se aplica a cada grupo de datos generados por el Mapper, combinando valores.

Signup and view all the flashcards

¿Qué es Apache Spark?

Framework para procesamiento distribuido más intuitivo y rápido que MapReduce.

Signup and view all the flashcards

¿Qué es Spark Core?

El motor central de Spark que contiene las estructuras de datos fundamentales como los RDD.

Signup and view all the flashcards

¿Qué es Spark SQL?

API para manejar tablas de datos distribuidas (DataFrames) y ejecutar SQL.

Signup and view all the flashcards

¿Qué son RDD?

Representan colecciones no ordenadas que se distribuyen en la memoria RAM de los nodos.

Signup and view all the flashcards

¿Qué son transformaciones en Spark?

Se aplican a RDD para crear nuevos RDD y son perezosas, solo se ejecutan cuando se invoca una acción.

Signup and view all the flashcards

¿Qué son acciones en Spark?

Calculan resultados y devolverlos al driver, desencadenan la ejecución de toda la secuencia de transformaciones.

Signup and view all the flashcards

¿Qué es un Job en Spark?

Representa el procesamiento necesario para completar una acción del usuario.

Signup and view all the flashcards

¿Qué es un Stage en Spark?

Son procesamientos que no requieren movimiento de datos entre nodos.

Signup and view all the flashcards

¿Qué son Tasks en Spark?

Son las unidades mínimas de trabajo y corresponden a las transformaciones aplicadas a las particiones de los RDD.

Signup and view all the flashcards

¿Qué son los DataFrames?

Permiten manejar datos en forma de tablas distribuidas, facilitando un nivel de abstracción superior.

Signup and view all the flashcards

¿Qué es Spark SQL?

Permite realizar consultas en lenguaje SQL sobre DataFrames registrados como tablas.

Signup and view all the flashcards

¿Qué es Spark MLlib?

Proporciona herramientas para tareas como limpieza de datos, ingeniería de variables, aprendizaje y evaluación de modelos.

Signup and view all the flashcards

¿Qué son los estimadores?

Requieren ajustar parámetros usando el método fit antes de realizar transformaciones sobre un DataFrame.

Signup and view all the flashcards

¿Qué son los transformadores?

Transforman un DataFrame sin aprender parámetros.

Signup and view all the flashcards

¿Qué son pipelines?

Organizan y simplifican el proceso de preprocesamiento y entrenamiento en machine learning.

Signup and view all the flashcards

¿Qué es Spark Structured Streaming?

Se basa en streaming DataFrames, que se dejan crecer en tiempo real conforme llegan nuevos datos.

Signup and view all the flashcards

¿Qué es Apache Kafka?

Es una herramienta para el procesamiento de flujos de datos en tiempo real.

Signup and view all the flashcards

¿Qué es un sistema de mensajería pub/sub?

Implementa el patrón pub/sub, proporcionando un bus de datos donde las aplicaciones publican y reciben mensajes.

Signup and view all the flashcards

¿Qué son los productores?

Son aplicaciones que escriben en Kafka, gestionando la escritura de mensajes en topics.

Signup and view all the flashcards

¿Qué son los consumidores?

Son aplicaciones que leen mensajes de topics específicos en Kafka.

Signup and view all the flashcards

¿Qué es Apache Hive?

Permite hacer consultas SQL sobre datos distribuidos.

Signup and view all the flashcards

¿Qué es HiveQL?

Es un lenguaje de consulta similar a SQL, utilizado en Hive.

Signup and view all the flashcards

¿Qué es Apache Impala?

Proporciona acceso uniforme a diversas fuentes de datos distribuidas usando SQL.

Signup and view all the flashcards

¿Qué es cloud computing?

Se refiere a servicios accesibles vía Internet, eliminando la complejidad de la gestión de la infraestructura.

Signup and view all the flashcards

¿Qué es IaaS?

Alquiler de infraestructura esencial como servidores y redes.

Signup and view all the flashcards

¿Qué es PaaS?

Entorno de desarrollo y gestión para aplicaciones sin preocuparse por la infraestructura.

Signup and view all the flashcards

¿Qué es SaaS?

Aplicaciones software accesibles por Internet, gestionadas totalmente por el proveedor.

Signup and view all the flashcards

¿Qué es Azure Compute?

Proporciona servicios de cómputo bajo demanda como máquinas virtuales y contenedores.

Signup and view all the flashcards

¿Qué es Azure Virtual Machines?

Ofrece máquinas virtuales Windows y Linux.

Signup and view all the flashcards

¿Qué es Azure Data Lake Storage?

Almacenar grandes volúmenes de datos y es compatible con el ecosistema Hadoop.

Signup and view all the flashcards

Study Notes

Ingeniería para el Procesamiento Masivo de Datos: Big Data

  • Necesidades actuales de procesamiento de datos destacan la interconexión de la sociedad.
  • El objetivo principal es comprender cómo las tecnologías big data abordan estas necesidades. Esto incluye el concepto de clúster de ordenadores, tecnologías distribuidas relacionadas y las herramientas del ecosistema Hadoop, su finalidad y relaciones.

La Sociedad Interconectada: La Era del Cliente

  • Las tecnologías big data surgen en respuesta al aumento de datos en un mundo interconectado.
  • El 90% de la información se ha creado en los últimos dos años.
  • El 80% de estos datos son no estructurados, generados por interacciones humanas.
  • El 20% restante son datos estructurados producidos por máquinas.
  • Fuentes de datos:
    • Interacción entre humanos a través de sistemas informáticos.
    • Interacción humano-máquina en plataformas digitales.
    • Interacción entre máquinas mediante sistemas de monitoreo.
  • El análisis de estos datos permite anticipar las demandas de los clientes.
  • La transformación digital se centra en el cliente, aprovecha canales digitales e impulsa decisiones basadas en datos transformando a las empresas tradicionales.

Definición de las Tecnologías Big Data

  • Las tecnologías tradicionales son insuficientes para las características actuales de los datos: volumen, velocidad y variedad (las tres "v").
  • Un proyecto se considera big data si implica al menos una de estas "v".
  • Big data son tecnologías y arquitecturas que facilitan el almacenamiento, movimiento, acceso y procesamiento de datos que antes eran difíciles de manejar.
  • Las tecnologías big data permiten aplicar técnicas de análisis a mayores volúmenes de datos, mejorando la eficiencia y calidad de los resultados.

Origen de las Tecnologías Big Data

Google y el Nacimiento de Big Data

  • Google fue la primera empresa en reconocer y abordar el creciente volumen de datos en Internet para indexar páginas web.
  • En 2003, se propuso el Google File System (GFS), un sistema de almacenamiento en clústeres de ordenadores convencionales (commodity hardware) para archivos grandes.

Evolución del Procesamiento de Datos

  • En 2004, se introdujo MapReduce, un modelo de programación que permite procesar archivos en paralelo en clústeres, permitiendo simplificar los aspectos de hardware y redes.
  • MapReduce se convirtió en un estándar para el desarrollo de software en big data.

Apache Spark y su Impacto

  • En 2009, se desarrolló Apache Spark como una solución open source para mejorar las limitaciones de Hadoop.
  • Spark comparte con MapReduce la estructura de clústeres de commodity hardware y se ha posicionado como mas rapido.

El Ecosistema Hadoop

  • Las tecnologías de procesamiento distribuidos manejan grandes volúmenes de datos a través de múltiples máquinas interconectadas.
  • El ecosistema Hadoop se construyó sobre GFS y MapReduce, formando un conjunto de herramientas open source para el procesamiento distribuido.

Herramientas Dentro del Ecosistema Hadoop

  • HDFS: Sistema de archivos distribuido para gestión de datos entre nodos en un clúster.
  • MapReduce: Paradigma de programación para tareas en un clúster, ahora en desuso.
  • Flume: Herramienta para el tratamiento de logs.
  • Sqoop: Herramienta para la migración de datos entre bases de datos convencionales y HDFS.
  • Zookeeper: Coordinador del ecosistema para la correcta operación de las herramientas.
  • Oozie: Herramienta para la planificación y ejecución de flujos de datos.
  • Pig: Herramienta para la programación de flujos de datos, utilizando un lenguaje similar a SQL.
  • Mahout: Biblioteca de algoritmos de machine learning, ahora compatible con Spark.
  • Hive: Herramienta que permite consultas SQL en datos almacenados en HDFS, ahora compatible con Spark.
  • HBase: Base de datos NoSQL columnar, con flexibilidad en la longitud y número de campos en los registros.

Herramientas Destacadas para Big Data

  • HDFS: Clave en la gestión de datos distribuidos.
  • Apache Hive: Acceso SQL a datos estructurados en almacenamiento distribuido.
  • Apache Spark: Motor de procesamiento en memoria que ha reemplazado a MapReduce por su velocidad y eficiencia.
  • Apache Kafka: Plataforma para la gestión de eventos en tiempo real, utilizando una cola de mensajes distribuida.

Distribuciones de Hadoop

  • Las distribuciones de Hadoop agrupan múltiples herramientas en un solo paquete para facilitar su instalación y operación.
  • Empresas como Cloudera, Hortonworks y MapR desarrollaron distribuciones personalizadas. Cada distribución puede ser open source o de pago.

Comparativa de Distribuciones de Hadoop

  • Cloudera (CDH): Open source (CDH) y de pago, Linux (Windows vía VMWare), creada en 2008, la más extendida y popular.
  • Hortonworks: 100 % open source, Linux y Windows, creada en 2011, única para Windows y 100 % open source.
  • MapR: Open source y de pago, Linux (Windows: VM Ware), creada en 2009, la más rápida y fácil de instalar.

Hdfs Bloque

  • El HDFS (Hadoop Distributed File System) es fundamental para el almacenamiento de datos en Hadoop y el procesamiento paralelo mediante MapReduce.
  • Objetivos incluyen conocer las carácteristicas de HDFS, entender su arquitectura y operaciones de lectura y escritura, familiarizarse con comandos de HDFS, el paradigma de programación MapReduce y conocer sus ventajas y desventajas.

Introducción a HDFS

  • HDFS es un sistema de archivos distribuido que permite almacenar grandes archivos con acceso en streaming.
  • Se caracteriza por ser distribuido, escalable, y diseñado para archivos grandes que requieren múltiples accesos sin modificaciones, no es optimo para aplicaciones que necesitan baja latencia o trabajan con archivos pequeños frecuentemente modificados.
  • HDFS utiliza Java y proporciona una interfaz que simula un sistema de archivos único, aunque almacena datos de forma distribuida. Además ofrece comandos similares a los de Linux.

Arquitectura de HDFS

Bloques de HDFS

  • HDFS tiene un tamaño de bloque configurable (128 MB por defecto).
  • Los bloques están replicados para asegurar la disponibilidad, con un factor de replicación por defecto de 3.

Datanodes y Namenode

  • El namenode gestiona la estructura de directorios y la metadata de archivos.
  • Los datanodes almacenan los bloques reales.
  • El namenode es un único punto de fallo, por lo que hay mecanismos de respaldo y alta disponibilidad, como un par de namenodes activos y en espera que comparten un log de edición para un cambio rápido en caso de fallos.

Proceso de Lectura y Escritura en HDFS

  • En la lectura el cliente pregunta al namenode por un archivo, el cual retorna la localización de bloques. Luego, el cliente accede directamente a los datanodes.
  • En la escritura el cliente solicita al namenode crear un archivo; el namenode asigna datanodes y se establece un pipeline para garantizar la replicación.

Comandos de HDFS más Frecuentes

  • Los comandos de HDFS pueden ser hadoop dfs o hdfs dfs, con hdfs dfs más común. Todos los comandos requieren rutas completas.
  • hdfs dfs –ls /ruta/directorio: Visualiza el contenido de un directorio.
  • hdfs dfs –mkdir /ruta/nuevodirectorio: Crea un nuevo subdirectorio.
  • hdfs dfs –copyFromLocal ruta/local/fichero.txt /ruta/hdfs/: Copia un archivo local a HDFS.
  • hdfs dfs –copyToLocal /ruta/hdfs/fichero.txt ruta/local: Copia un archivo desde HDFS a local.
  • hdfs dfs –tail /ruta/hdfs/fichero.txt: Muestra las últimas líneas de un archivo.
  • hdfs dfs –cat /ruta/hdfs/fichero.txt: Imprime el contenido completo del archivo. Utilizar more para archivos grandes.
  • hdfs dfs –cp /ruta/hdfs/origen/fichero.txt /ruta/hdfs/destino/copiado.txt: Copia un archivo dentro de HDFS.
  • hdfs dfs –mv /ruta/original.txt /ruta/nuevo.txt: Renombra o mueve un archivo.
  • hdfs dfs –rm /ruta/fichero.txt: Elimina un archivo. Usar -r para eliminar directorios.
  • hdfs dfs –chmod /ruta/hdfs/fichero.txt: Cambia los permisos de acceso.
  • hdfs dfs –chown usuario /ruta/fichero.txt: Cambia el propietario de un archivo.

Introducción a MapReduce

  • Google desarrolló MapReduce, un paradigma de programación que permite el procesamiento donde están los datos, utilizando CPUs de datanodes en paralelo.
  • El modelo abstrae al programador de detalles de hardware y redes enfocándose en el software. Este enfoque permite la gestión de grandes datasets a través de "divide y vencerás".

Funciones en MapReduce

  • El usuario implementa el Mapper y el Reducer.
    • Mapper: Se invoca en paralelo sobre cada bloque de entrada, generando resultados intermedios en formato (clave, valor) que se almacenan en disco local.
    • Reducer: Se aplica a cada grupo de datos generados por el Mapper, combinando los valores asociados a cada clave única para producir resultados finales.
Ejemplo de Aplicación: Conteo de Ocurrencias de Palabras
  • La función map procesa cada línea generando tuplas (palabra, 1) para cada palabra.
  • El framework agrupa estas tuplas e invoca el reduce para sumar las ocurrencias de cada palabra y generar el resultado final.
Inconvenientes de MapReduce
  • El resultado intermedio del Mapper se escribe en disco, siendo más lento que acceder a la memoria RAM.
  • El tráfico de red (shuffle) es obligatorio tras la fase Map, afectando a la eficiencia.
  • Mover datos entre nodos requiere múltiples escrituras temporales en disco, incrementando el tiempo de procesamiento.
  • Los algoritmos iterativos, comunes en machine learning, no se implementan eficientemente.
  • Conceptualizar problemas en términos de operaciones map y reduce puede ser complicado y difícil de mantener .

Spark Rdd

  • Las deficiencias del paradigma MapReduce impulsaron la creación de Apache Spark como un framework más rápido e intuitivo.
  • El objetivo, identificar los módulos de Spark, conocer su arquitectura y practicar funciones para el procesamiento de datos.

Apache Spark

  • Spark surgió en 2009 en Berkeley.
  • Spark es un motor unificado de cálculo en memoria para el procesamiento paralelo y distribuido de datos capaz de operar desde distintas APIs, optimizando consultas y ofreciendo un rendimiento superior en tareas iterativas.

Componentes de Spark

  • Spark tiene una API distribuida y fácil de usar que opera como consultas SQL.
  • Los principales componentes:
    • Spark Core: Contiene las estructuras de datos fundamentales como los RDD.
    • Spark SQL: API para manejar tablas de datos distribuidas (DataFrames) y ejecutar SQL.
    • Spark Streaming: Procesamiento distribuido de datos en tiempo real.
    • Spark MLlib: Implementaciones de algoritmos de Machine Learning.
    • Spark GraphX: Procesamiento de grafos.

Arquitectura de Spark

  • La arquitectura de Spark permite escribir aplicaciones secuenciales que se ejecutan en un driver que se conecta a un clúster.
  • Se crea un SparkSession para permitir al programa comunicarse con los workers y utilizar sus recursos para ejecutar sentencias distribuidas.

Resilient Distributed Datasets (RDD)

  • Los RDD son la abstracción fundamental en Spark, representando colecciones no ordenadas que se distribuyen en la memoria RAM de los nodos.
  • Los RDD son resistentes a fallos, se distribuyen a través de particiones en diferentes nodos, permitiendo su reconstrucción a partir de un Directed Acyclic Graph (DAG) en caso de fallo.
  • Los RDD son inmutables.

Transformaciones y Acciones

  • Las transformaciones se aplican a RDD para crear nuevos RDD y son perezosas (lazy evaluation), solo se ejecutan cuando se invoca una acción.
  • Las acciones calculan resultados y los devuelven al driver, desencadenando la ejecución de toda la secuencia de transformaciones. Las acciones deben caber en la memoria del driver.
  • Ejemplos de transformaciones: map, filter.
  • Ejemplos de acciones: reduce, collect.

Jobs, Stages y Tasks

  • Un job en Spark representa el procesamiento necesario para completar una acción del usuario.
  • Cada job consta de stages, que son procesamientos que no requieren movimiento de datos entre nodos.
  • Las tasks son las unidades mínimas de trabajo y transformaciones aplicadas a las particiones de los RDD.

Ejemplo Completo con RDD

Introducción

  • Los RDDs se comparan en utilidad con los DataFrames, así como Hive. Utilizar los archivos flights.csv y airport-codes.csv que se encuentran en HDFS bajo /user/data.

Objetivo del Ejemplo

  • El objetivo es contar los vuelos por aeropuerto de destino contenidos en flights.csv.
  • Se desea correlacionar el número de vuelos con el nombre completo del aeropuerto de destino, que se encuentra en airport-codes.csv.

Inicialización de Spark

  • Se importa SparkSession de PySpark y se inicia una sesión con el nombre "demo_rdd".
  • Se accede al SparkContext necesario para trabajar con RDD.

Lectura de los Archivos

  • Se lee flights.csv como un RDD donde cada línea es un string completo.
  • Se ignora la cabecera del archivo utilizando una transformación filter.

Procesamiento de Datos

  • Se utiliza split para dividir cada línea en componentes y obtener un RDD con tuplas de datos.
  • Para cambiar los tipos de año, mes y día a enteros, se aplica una transformación map.

Contar Vuelos por Destino

  • Se agrupan los destinos y se cuentan cuántos vuelos llegan a cada uno.
  • Se crea un PairRDD donde la clave es el destino y el valor es 1.

Agrupación y Suma de Vuelos

  • Se agrupan los destinos usando groupByKey y se suman los valores asociados a cada clave.
  • Alternativamente, se cuenta la longitud de la lista de valores.

Integración de Datos de Aeropuertos

  • Se lee el archivo airport-codes.csv y se crea otro PairRDD que contiene el código del aeropuerto y su nombre.
  • Se eliminan las comillas de los destinos en el RDD de vuelos para permitir una correcta unión.

Realización del Join

  • Se hace un join entre los RDD de vuelos y los códigos de aeropuerto basándose en las claves.
  • Esto produce un nuevo PairRDD donde la clave es el código del aeropuerto y el valor es una tupla con el número de vuelos y el nombre del aeropuerto.

Presentación de Resultados

  • Se extraen los campos para mostrar el nombre del aeropuerto y el número de vuelos recibidos.
  • Los resultados finales muestran el nombre del aeropuerto junto con la cantidad de vuelos que recibe.

Conclusión

  • Los RDDs son poderosos para manejar información pero requieren un buen entendimiento de su estructura y tipos de datos.
  • El próximo capítulo abordará soluciones ofrecidas por Spark para hacer este tipo de tareas más intuitivas a través de una API estructurada y Spark SQL.

Spark Df & Api

  • Apache Spark, como tecnología eficiente para procesar grandes datos, supera a MapReduce.
  • Este capítulo se centra en la API estructurada de Spark y en DataFrames, destacando sus ventajas frente a los RDD.
  • Los objetivos, conocer la API estructurada, sus ventajas y el uso de Spark SQL para manipular DataFrames.

DataFrames en Spark

  • Los DataFrames permiten manejar datos en forma de tablas distribuidas, facilitando un alto nivel de abstracción en comparación con los RDD.
  • Un DataFrame consiste en un RDD de objetos Row, donde cada fila es una tabla con tipos de datos predefinidos. Su esquema define la estructura de las columnas.
  • Al traer datos a una máquina usando toPandas, se deben considerar limitaciones de memoria.

API Estructurada de Spark: Lectura y Escritura de DataFrames

  • Spark soporta la lectura de datos desde HDFS, Amazon S3 y bases de datos relacionales. Los formatos pueden ser CSV, JSON o Parquet.
  • La lectura de DataFrames se realiza mediante spark.read, especificando opciones como formato, esquema y modo de lectura.
  • La escritura se realiza mediante .write, configurando formato y modo de escritura.

API Estructurada de Spark: Manipulación de DataFrames

  • Las operaciones sobre DataFrames se centran en transformaciones de columnas.
  • Las transformaciones devuelven un nuevo DataFrame y se pueden encadenar; además, se pueden utilizar operaciones disponibles de RDD.
  • Funciones comunes incluyen select, withColumn, drop, when y métodos estadísticos como describe().

Ejemplo de Uso de API Estructurada

  • Se replica un ejemplo de manejo de datos usando la API estructurada para mostrar la mayor facilidad en la manipulación.
  • Operan funciones sobre la información de vuelos en un DataFrame.

Spark SQL

  • Spark SQL permite realizar consultas en lenguaje SQL sobre DataFrames registrados como tablas, combinando así SQL con la API estructurada.
  • La interfaz de línea de comandos de Spark SQL y el método .sql() de la SparkSession son las herramientas para ejecutar consultas SQL.
  • Se introducen conceptos de tablas gestionadas y no gestionadas, así como la importancia de las vistas en Spark SQL, que definen transformaciones sobre tablas existentes.

Ejemplo de Spark SQL

Carga de Datos

  • Se inicia la carga de datos utilizando Spark SQL, partiendo del archivo CSV de vuelos almacenado en HDFS spark.read.option("header", "true").csv("hdfs:///user/data/flights.csv"), indica que la primera fila del archivo es la cabecera.

Registro de DataFrames

  • Es esencial registrar los DataFrames que se desean utilizar en las consultas SQL como tablas o vistas. flightsDF.createOrReplaceTempView('flights') para crear un vista temporal llamada 'flights'.

Cálculo de Vuelos.

  • Para calcular cuántos vuelos llegan a cada aeropuerto de destino, se emplea una consulta SQL: SELECT dest, COUNT(dest) AS dest_count FROM flights GROUP BY dest ORDER BY dest_count DESC.

Registro del Resultado

  • El resultado de la consulta se debe registrar nuevamente como vista. flights_dest_count.createOrReplaceTempView('flights_dest_count') y se muestra el resultado con flights_dest_count.show(5).

Conclusiones

  • Se obtiene un resultado idéntico al obtenido mediante la API estructurada. A pesar de las diferencias en el código entre las APIs, ambas opciones proporcionan el mismo plan de ejecución, ya que Spark está diseñado como motor de procesamiento unificado.

Ejemplo de Spark SQL

Cargando los Datos

  • Se carga un DataFrame de vuelos desde un archivo CSV en HDFS flightsDF = spark.read.option("header", "true").csv("hdfs:///user/data/flights.csv").

Registrando el DataFrame como Vista

  • Para usar el DataFrame con SQL, es necesario registrarlo como una vista temporal. flightsDF.createOrReplaceTempView('flights').

Consultando los Datos

  • Se utiliza una consulta SQL para calcular la cantidad de vuelos que llegan a cada aeropuerto de destino SELECT dest, COUNT(dest) AS dest_count FROM flights GROUP BY dest ORDER BY dest_count DESC.

Trabajando con los Resultados

  • Después de ejecutar la consulta, es necesario registrar el resultado como una nueva vista. flights_dest_count.createOrReplaceTempView('flights_dest_count').
  • Se muestran los primeros cinco resultados utilizando el método show(5), logrando idénticos resultados que con la API estructurada.

Spark Mlib & Stream

  • Este capítulo se enfoca en Spark MLlib y Spark Streaming.
  • Se presentan las capacidades de Spark MLlib con ejemplos prácticos.
  • Se introduce brevemente Apache Hive como herramienta para consultas SQL en datos distribuidos.

Spark MLlib

  • Spark MLlib proporciona herramientas para tareas como limpieza de datos, ingeniería de variables, aprendizaje de modelos y evaluación de modelos sobre grandes datasets.
  • No incluye métodos para el despliegue en producción de modelos.
  • MLlib radica en su capacidad para manejar modelos distribuidos mediante Spark de grandes volúmenes de datos.

Despliegue de Modelos en Producción con Spark

  • Spark no está diseñado para la explotación online de modelos, sino para entrenar modelos en modo batch con datos grandes.
  • Se puede entrenar, guardar el modelo y predecir datos uno a uno, aunque esto no es recomendado.

Estimadores y Transformadores

  • La API de Spark MLlib incluye estimadores y transformadores.
  • Los estimadores requieren ajustar parámetros usando el método fit, mientras que los transformadores transforman un DataFrame sin aprender parámetros.

Algunos Transformadores Habituales

  • VectorAssembler: Combina varias columnas en una sola columna de tipo vector.
  • Modelos Entrenados: Se pueden usar como transformadores para realizar predicciones sobre nuevos datos, agregando los resultados a nuevas columnas en el DataFrame.

Estimadores más Comunes

  • StringIndexer: Convierte columnas categóricas en índices numéricos.
  • OneHotEncoderEstimator: Transforma columnas indexadas en variables dummy.

Pipelines en Spark ML

  • Los pipelines simplifican el proceso de preprocesamiento y entrenamiento en machine learning.
  • Cada etapa de un pipeline es un transformador o un estimador.
  • La estructura de un pipeline permite ajustar y ejecutar rápidamente todos los pasos necesarios en el entrenamiento de un modelo.
  • Un ejemplo típico es la regresión logística para predecir retrasos en vuelos.

Spark Structured Streaming

Introducción a Spark Structured Streaming

  • Spark Structured Streaming reemplaza a Spark Streaming. Se basa en streaming DataFrames.
  • Este enfoque reduce la latencia, permitiendo cálculos incrementales.

Procesamiento de Flujos de Datos

  • El procesamiento de flujos implica la incorporación continua de nuevos datos para actualizar resultados en tiempo real.
  • Estas actualizaciones pueden incluir la eliminación de datos más antiguos.

API de Structured Streaming

  • Structured Streaming mantiene una API similar a DataFrames, permitiendo que el mismo código maneje DataFrames estáticos y streaming.
  • La única acción es start(), que inicia el flujo de cálculo.

Fuentes de Datos y Salida

  • Structured Streaming permite leer datos en tiempo real desde Kafka, HDFS o Amazon S3 y desde sockets.
  • La lectura se realiza mediante el método readStream en SparkSession. Es necesario especificar el esquema de los archivos de entrada.

Mantenimiento de Datos y Esquemas

  • Se puede leer un DataFrame estático para determinar el esquema, que luego se aplica al streaming DataFrame.
  • La salida puede escribirse en Kafka o en archivos, y existen diferentes modos de salida: añadir, actualizar o reemplazar completamente.

Ejemplo de Código

  • Se ejemplifica un caso donde se procesan archivos de retrasos de vuelos en HDFS. El código calcula el retraso medio en cada aeropuerto usando streaming DataFrames.

KAFKA Streaming

  • Apache Kafka es una herramienta en el ecosistema de big data, para el procesamiento de flujos de datos en tiempo real.
  • Entender la mensajería publicación/suscripción, el concepto de bus de mensajes distribuido y el funcionamiento interno de Kafka.

Mensajería Publicación/Suscripción

  • Las aplicaciones generan datos debiendo ser comunicados a sistemas que los analicen.
  • Kafka se presenta como una solución para la complejidad de las conexiones entre subsistemas, proponiendo un único sistema para publicar y consultar información.

Introducción a Apache Kafka

  • Kafka es un sistema de mensajería que implementa el patrón pub/sub.
  • Conceptos clave: bus, mensaje, sistema distribuido y replicado, publicación/suscripción, topics y particiones.

Casos de Uso Típicos de Kafka

  • Casos de uso:
    • Seguimiento de actividad en sitios web.
    • Sistemas de mensajería que consolidan información para alertas.
    • Recopilación de logs.
    • Replicación de cambios en bases de datos.
    • Procesamiento en tiempo real de flujos de datos.

Conceptos Fundamentales

  • Kafka, creado para resolver problemas de mensajería en tiempo real, es utilizado por grandes empresas.
  • Un clúster de Kafka permite escalar la carga y garantizar la disponibilidad a través de múltiples brókeres y Zookeeper para la gestión de metadatos.
  • Los topics tienen particiones para el balanceo de carga y están configurados para mantener mensajes, incluyendo su política de retención y replicación.

Implementación de Productores Kafka

  • Para que las aplicaciones escriban en Kafka, se debe implementar código utilizando la API de Java, y se plantea el manejo de pérdidas de mensajes y restricciones de tiempo real.
  • Los tipos de envíos son "fire-and-forget", envío síncrono y asíncrono.
  • Se menciona la serialización usando Avro para transformar objetos en arrays de bytes, facilitando la manipulación de datos complejos.

Implementación de Consumidores Kafka

Grupos de Consumidores

  • Los consumidores en Kafka son aplicaciones que leen mensajes de topics específicos.
  • Para escalar el consumo, se pueden crear múltiples procesos consumidores en un mismo grupo, donde cada consumidor lee en paralelo desde las particiones asignadas. Si hay más consumidores que particiones, algunos consumidores quedarán ociosos.
  • Cuando se agregan o eliminan consumidores, Kafka realiza un rebalanceo de particiones lo que debe evitarse.

Detalles de Implementación de Consumidores

  • Para implementar consumidores, se configura un objeto KafkaConsumer especificando los tipos de clave y valor de los mensajes que espera recibir.
  • El proceso de lectura de mensajes incluye un bucle infinito que utiliza el método poll para verificar la disponibilidad de mensajes en el topic y mantener el estado activo del consumidor.

Hive & Impala

  • Analizan Apache Hive y Apache Impala.
  • Apache Hive permite consultas SQL sobre datos distribuidos mediante motores de ejecución (MapReduce, Spark o Tez).
  • Apache Impala ofrece acceso uniforme a diversas fuentes de datos distribuidas usando SQL.
  • El objetivo es familiarizar a los alumnos con la potencia de Apache Hive y Apache Impala.

Apache HiveQL

  • Apache Hive es un sistema de data warehouse que facilita el manejo y análisis de datos distribuidos mediante el lenguaje SQL,
  • Hive permite a analistas de inteligencias de negocio realizar tareas de ETL, reporting y análisis.
  • Utiliza un lenguaje de consulta llamado HiveQL, similar a SQL y está enfocado en OLAP.

Ejemplo de Uso

  • Se muestra la creación de una tabla para gestionar datos de vuelos desde un archivo CSV almacenado en HDFS. Se pueden definir columnas y tipos de datos.
  • Podemos realizar consultas sin programación compleja, por ejemplo, contar cuántos vuelos llegan a cada destino.

Funcionamiento de Hive

  • Hive puede utilizar Hiveserver2, CLI y HWI. Hiveserver2 actúa como un servidor que escucha peticiones en HiveQL.
  • Clients pueden ser diseñados en Python y Java, a través de interfaces como JDBC u ODBC.

Arquitectura de Hive Sobre MapReduce

  • La arquitectura coordina el proceso desde la recepción de una consulta hasta su ejecución en un clúster de Hadoop.

Diferencias Entre Hive y las Bases de Datos Tradicionales

  • Hive opera bajo un modelo de esquema diferente llamado "schema-on-read".
  • No soporta transacciones y actualizaciones en registros individuales.

Gestión de Tablas en Hive

  • Una tabla en Hive se compone de datos y metadatos, clasificándose como gestionadas y externas.
  • Hive soporta formatos de archivo y define cómo se cargan los datos.

Ejecución de una Consulta en un Clúster de Hive

  • Se crean tablas para vuelos y códigos de aeropuertos, cargando datos y realizando consultas con uniones de tablas y creación de vistas.
  • Finalmente, se escribe los resultados y se elimina tanto vistas como tablas, dependiendo de si los datos son gestionados o externos.

Apache Impala MPP

Introducción a Apache Impala

  • Apache Impala es una herramienta de procesamiento masivamente paralelo (MPP) para ejecutar consultas interactivas en SQL.
  • Se integra con el ecosistema Hadoop usando el mismo controlador ODBC que Apache Hive y es capaz de leer y escribir en tablas de Hive y Apache Kudu.

Historia y Comparación con Apache Hive

  • Impala permite consultas rápidas mediante su propia arquitectura de demonios.

Capacidad de Escritura y Resiliencia

  • En versiones posteriores, Impala añadió soporte para escritura en disco, mejorando su resiliencia.

Ejecución de Consultas en Impala

  • Las aplicaciones que requieren consultas a Impala se denominan "clientes" incluyendo interfaces gráficas como Hue.
  • El metastore de Hive contiene metadatos sobre los datos accesibles..

Proceso de Ejecución de una Consulta

  1. Un cliente envía una consulta SQL a Impala a través de interfaces estandarizadas.
  2. Impala analiza la consulta y planifica tareas para su ejecución eficiente.
  3. Los procesos impalad acceden a los datos en HDFS o HBase de manera local.
  4. Los resultados parciales son enviados al demonio coordinador, que devuelve el resultado final al cliente.

Arquitectura de Impala

  • El demonio impalad es el componente esencial que ejecuta procesos en cada datanode, coordinando y paralelizando las consultas.

Componentes Clave de la Arquitectura

  • Statestore: Verifica el estado de los demonios de Impala y envía alertas sobre fallos.
  • Catalog Service: Comunica los cambios en los metadatos.

Azure

  • Se han explorado tecnologías de big data y la administración de clústeres locales, lo que motiva el uso de servicios de cloud computing.
  • El objetivo es entender el concepto de cloud computing, sus orígenes, beneficios, modelos de despliegue, modelos de servicio como IaaS, PaaS y SaaS, explorando Microsoft Azure.

Introducción a Cloud Computing

  • Cloud computing se refiere a servicios accesibles vía Internet, eliminando la complejidad detrás de protocolos.
  • Se incluyen servicios como almacenamiento, software y analítica, con la ventaja de pagar solo por lo que se usa y la virtualización y abstracción de los sistemas físicos.

Ventajas del Cloud Computing

  • Disponibilidad: Garantiza el funcionamiento continuo de aplicaciones mediante replicas a gran escala.
  • Escalabilidad: Permite a los sistemas crecer fácilmente ante la demanda.
  • Elasticidad: Ajusta recursos rápidamente según la carga de trabajo.
  • Escala global: Proporciona recursos adecuados y localizados geográficamente.
  • Productividad: Reduce las tareas de instalación y mantenimiento.
  • Seguridad: Proveedores ofrecen controles de seguridad para proteger aplicaciones y datos.
  • Fiabilidad y tolerancia a fallos: Capacidad de recuperarse rápidamente de fallos.
  • Recuperación ante desastres: Determina cómo una infraestructura se recupera tras eventos normales.
  • Coste: Hay una comparativa entre gastos de capital y el pago por consumo en servicios de cloud computing.

Tipos de Nube y Servicios en la Nube

  • La clasificación se divide en modelos de despliegue y modelos de servicio.

  • Modelos de despliegue:

    • Nube pública: Recursos ofrecidos por proveedores externos a través de Internet.
    • Nube privada: Recursos usados exclusivamente por una organización.
    • Nube híbrida: Combinación de nubes públicas y privadas.
  • Modelos de servicio:

    • IaaS: Alquiler de infraestructura esencial como servidores y redes.
    • PaaS: Entorno de desarrollo y gestión para aplicaciones.
    • FaaS / Serverless: Enfoque en ejecutar funciones específicas.
    • SaaS: Aplicaciones software accesibles por Internet.

Casos de Uso de los Servicios en la Nube

  • Los servicios en la nube son utilizados en aplicaciones cotidianas.
  • Casos de uso incluyen:
    • Construir y escalar rápidamente aplicaciones.
    • Crear y restaurar copias de seguridad con alta disponibilidad.
    • Streaming de video y audio mediante redes globales.
    • Proporcionar software bajo demanda.
    • Análisis de datos para descubrir patrones útiles.

Microsoft Azure

Microsoft Azure Como Plataforma de Computación en la Nube

Descripción General
  • Microsoft Azure es una plataforma en la nube con una amplia gama de servicios.
  • Azure ofrece Azure Portal para gestionar servicios y el Marketplace que ofrece servicios de terceros.
Orígenes de Microsoft Azure
  • Azure se originó a partir de Azure Platform y Windows Azure Platform, y se organiza en infraestructura, plataforma, gestión y seguridad.
Conceptos y Servicios Transversales
Regiones y Zonas de Disponibilidad
  • Azure está compuesto por datos distribuidos en regiones y zonas.

Seguridad en Microsoft Azure

  • La seguridad en Azure es responsabilidad compartida entre el proveedor y el usuario, ofreciendo Azure Active Directory y un servicio de monitoreo de seguridad.

Servicios de Cómputo

Azure Compute
  • Azure Compute proporciona servicios de cómputo bajo demanda, como máquinas virtuales y contenedores.
Azure Virtual Machines
  • Ofrece máquinas virtuales Windows y Linux para ejecutar sistemas operativos.
Azure Container Instances y Azure Kubernetes Service
  • Permiten a los usuarios ejecutar aplicaciones en contenedores

Servicios de Redes

  • Ofrece servicios de conexión entre recursos como Azure Virtual Network, Azure Load Balancer y Azure Firewall.

Servicios de Almacenamiento

Azure Storage
  • Azure Storage comprende servicios que garantizan alta durabilidad y disponibilidad y se divide en Azure Blob Storage para datos no estructurados Azure File Storage y Azure Queue Storage para mensajería asíncrona.

Bases de Datos

  • Azure ofrece una variedad de servicios de bases de datos como Azure Cosmos DB y Azure SQL Database.
  • Azure Database Migration Service ayuda en la migración de bases de datos a la plataforma de Azure.

Big Data y Analítica de Datos

Azure Data Lake Storage
  • Este servicio de almacenamiento de datos es compatible con el ecosistema Hadoop.
Azure Synapse Analytics
  • Proporciona un sistema de análisis a gran escala, separando el almacenamiento del procesamiento.
Azure Stream Analytics y Azure HDInsight
  • Azure Stream Analytics permite el procesamiento de datos en tiempo real para aplicaciones IoT.
  • Azure HDInsight gestiona clústeres de Hadoop.
Azure Databricks
  • Es un servicio basado en Apache Spark.

Inteligencia Artificial

Azure Machine Learning
  • Azure proporciona herramientas para desarrollar y gestionar modelos de machine learning.
Servicios de Inteligencia Artificial Preentrenados
  • Azure ofrece APIs preentrenadas como Vision API, Speech API y Natural Language Processing API.

Aws

  • Se explorará Amazon Web Services (AWS) y como se relaciona con las tecnologías de big data en la nube.
  • Los objetivos del tema,conocer AWS, explorar sus servicios cloud, examinar los servicios IaaS adecuados para big data, y conocer alternativas PaaS y SaaS enfocadas en big data, analytics y machine learning.

Amazon Web Services

  • Amazon Web Services (AWS) es la plataforma líder en servicios cloud.
  • La infraestructura global que proporciona AWS y su modelo de pago por uso, atraen a empresas.

Regiones y Availability Zones (AZ)

  • AWS proporciona una disponibilidad global mediante regiones, Las regiones cuentan disponibilidad por latencia, precios, legislación y disponibilidad de servicios.
  • Cada región incluye al menos dos availability zones (AZ), interconectados para alta disponibilidad.

Servicios Transversales: Seguridad y Gestión

  • AWS enfoca su seguridad en la protección de datos, gestión de identidad y acceso, protección de infraestructura, detección de amenazas y la responsabilidad compartida entre Aws y usuarios.
  • Servicios como KMS, IAM y WAF gestionan la seguridad.

Servicios de Computación

  • Los servicios destacados incluyen EC2 (servidores virtuales), ECS (contenedores Docker) y EKS (contenedores Kubernetes).
  • ECS y EKS permiten ejecutar aplicaciones en contenedores gestionadas y escalables.

Servicios de Red

  • AWS utiliza Virtual Private Cloud (VPC) para aislar recursos y controlar el tráfico en subredes, incluyendo subredes públicas y privadas.

Servicios de Almacenamiento

  • EBS (almacenamiento persistente para EC2), S3 (almacenamiento de objetos) y EFS (almacenamiento de archivos) son los más utilizados.
  • S3 tiene diferentes tipos de almacenamiento y ofrece encriptación.

Bases de Datos

  • Amazon RDS (bases de datos relacionales) y DynamoDB (bases de datos NoSQL), Amazon ElastiCache, DocumentDB los servicios para bases de datos.

Servicios de Big Data y Analítica

  • La sección explora opciones enfocadas en facilitar instancias y construir clústeres gestionados de las instancias EC2.

Amazon Elastic MapReduce (Amazon EMR)

Descripción General de Amazon EMR
  • Amazon E

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

More Like This

Big Data Tools and Hadoop Ecosystem
10 questions
Hadoop and Big Data Concepts
24 questions
Understanding Hadoop and Big Data
8 questions
Big Data Concepts and Workload Processing
30 questions
Use Quizgecko on...
Browser
Browser